Ширина столбца html
Ширина столбца будем её выставлять нескольким способами. Ширина столбца в самой таблице, ширина столбца в процентах и пикселях, + ширина столбца через css.
Напоминаю, что ширина обозначается английским словом:
Мы уже сделали таблицу , изменили её ширину , поставили посередине , а про ширину столбцов совсем и забыли!
- В чем измеряется ширина столбца!?
- Ширина столбца в процентах
- Ширина столбца в пикселях
- Ширина столбца через стили css
- Фиксированная ширина столбца
- Фиксированная ширина столбца через ->
:nth-child(n)
В чем измеряется ширина столбца!?
Если мы помним, из предыдущих тем, то ширина таблицы измеряется в
1. %,
2. пикселях(px).
3. Есть еще много разных единицы измерений.
Эти свойства наследуют столбцы! Чтобы задать ширину столбца, надо знать, как устанавливать свойства css - их всего три.Для того, чтобы вы смогли увидеть границы ширины столбцов, поставим
Ширина столбца в процентах
Давайте поэкспериментируем! С шириной столбца в процентах!
Создадим таблицу с тремя столбцами!
И присвоим им ширину 25% + 50% + 25% сумма должна быть равна 100%.
Как видим, наша страница заполняет полное пространство на данной странице.
код:
<tr>
<td width="25%">width="25%"</td>
<td width="50%">width="50%"</td>
<td width="25%">width="25%"</td>
</tr>
</table>Результат столбца с разной шириной, в процента:
width="25%" | width="50%" | width="25%" |
Теперь ширину столбца сделаем в пикселях.
Общая ширина текстового поля, где вы читаете данный текст не равна 600 пикселям.
Ширина столбца в пикселях
Делим на 3 части 150px + 300px + 150px
код:
<tr>
<td width="150">width="150"</td>
<td width="300">width="300"</td>
<td width="150">width="150"</td>
</tr>
</table>
Смотрим наши получившиеся столбцы с разной шириной:
width="150" | width="300" | width="150" |
Ширина столбца через стили css
Теперь ширину столбца пропишем через стили css.
Сам столбец обозначается тегом "td":
Есть несколько вариантов, как прописать ширину столбцов.
К примеру, если вы пропишите сам столбец и к нему прикрепите ширину.
Вот так:
Width: 300px;
}
Но у этого способа есть один самый главный минус - все столбцы на странице будут иметь эту ширину и если эти стили прописаны в главном файл css? то все столбцы, на всем сайте будут иметь именно эту ширину!
Поэтому, для каждого столбца нужно поставить отдельный класс или ид.
Обратите внимание, что на третьем столбце ширина не прописана - вопрос - какой ширины должен быть третий столбец!?
<style>.example{ width: 100%; }
.example td.first{ width: 25%; }
.example td.second{ width: 50%; }</style>
Код:
<tr>
<td class="first">class="first"</td>
<td class="second">class="second"</td>
<td>no class</td>
</tr>
</table>
Результат:
class="first" | class="second" | no class |
Фиксированная ширина столбца
Как сделать ширину столбца фиксированной!?
Тут... у меня есть некое смущение! Почему!?
Давайте данный пункт разделим еще на два подпункта:
Код страницы с фиксированной шириной столбца:
<!DOCTYPE html>
<html>
<head>
<title>Пример использования свойства CSS table-layout.</title>
<style>
table.test,table.test2 {
width : 50%; /* устанавливаем ширину таблицы (без неё результат будет идентичный) */
}
td, th {
border : 1px solid; /* устанавливаем сплошную границу 1px (по умолчанию - черная) */
}
.test {
table-layout : auto; /* алгоритм автоматического размещения макета таблицы браузером */
}
.test2 {
table-layout : fixed; /* алгоритм фиксированного размещения макета таблицы браузером */
}
table.test3 { width : 1100px; }
table.test4 { width : 1100px; table-layout : fixed; }
table.test5 { width : 1100px;}
table.test6 { width : 1100px; table-layout : fixed; }
</style>
</head>
<body>
<h2>table { width : 50%; } table-layout: auto;</h2>
<hr>
<table class = "test">
<tr>
<th>Наименование</th><th>Цена</th>
</tr>
<tr>
<td>Веревка</td><td>20 рублей</td>
</tr>
<tr>
<td>Мыло жидкое</td><td>45 рублей</td>
</tr>
</table>
<h2>table { width : 50%; } table-layout: fixed;</h2>
<hr>
<table class = "test2">
<tr>
<th>Наименование</th><th>Цена</th>
</tr>
<tr>
<td>Веревка</td><td>20 рублей</td>
</tr>
<tr>
<td>Мыло жидкое</td><td>45 рублей</td>
</tr>
</table>
<h2>table.test3 { width : 1100px; }</h2>
<hr>
<table class = "test3">
<tr>
<th>Наименование</th><th>Цена</th>
</tr>
<tr>
<td>Веревка</td><td>20 рублей</td>
</tr>
<tr>
<td>Мыло жидкое</td><td>45 рублей</td>
</tr>
</table>
<h2>table.test4 { width : 1100px; table-layout : fixed; }</h2>
<hr>
<table class = "test4">
<tr>
<th>Наименование</th><th>Цена</th>
</tr>
<tr>
<td>Веревка</td><td>20 рублей</td>
</tr>
<tr>
<td>Мыло жидкое</td><td>45 рублей</td>
</tr>
</table>
<h2>table.test5 { width : 1100px; }</h2>
<hr>
<table class = "test5">
<tr>
<th>Наименование</th><th>Цена</th><td>45 рублей</td>
</tr>
<tr>
<td>Веревка</td><td>20 рублей</td><td>Мыло жидкое</td>
</tr>
<tr>
<td>Мыло жидкое</td><td>45 рублей</td><td>Мыло жидкое</td>
</tr>
</table>
<h2>table.test6 { width : 1100px; table-layout : fixed;}</h2>
<hr>
<table class = "test6">
<tr>
<th>Наименование</th><th>Цена</th><td>45 рублей</td>
</tr>
<tr>
<td>Веревка</td><td>20 рублей</td><td>Мыло жидкое</td>
</tr>
<tr>
<td>Мыло жидкое</td><td>45 рублей</td><td>Мыло жидкое</td>
</tr>
</table>
</body>
</html>
У меня ... в самом начале моего пути, было несколько сайтов построенных чисто на таблицах! И приверженцем таблиц я был очень долго - столько иногда не живут...!
НО! НИКОГДА, даже не слышал и не нуждался в таком свойстве, как фиксированная ширина столбца -
Здесь, конечно, идет речь не о самом столбце, а о таблице вообще! Но тем не менее!
Но как же я делал фиксированную ширину столбца!?
Как я уже говорил несколько раз, что стили css можно применить нескольким способами!Чтобы не нести пустопорожнее, возьмем в качестве примера страницу с фиксированными столбцами! И откроем первую линию
Что мы здесь видим!? Что у каждого столбца есть свой класс(это надо делать, только для первой линии <tr>),
<tr>
<td class="first_td">n</td>
<td class="second_td"> Дата </td>
<td class="three_td">form для перезагрузки</td>
<td>Страница</td>
</tr>
Из стилей мы видим, что первые три столбца от левого края имеют фиксированную ширину! А четвертый столбец занимает все, что осталось от 100%
table.table {
border-collapse: collapse;
width: 100%;
}
table.table td.first_td {
width: 10px;
text-align: center;
}
table.table td.second_td {
max-width: 50px;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
}
table.table td.three_td {
width: 63px;
text-align: center;
}
Фиксированная ширина столбца через :nth-child(n)
Как можно сделать фиксированную ширину без классов, которые указаны в предыдущем пункте! Эта таблица, что приведена в качестве примера, была сделана уже довольно давно и поскольку она выполняет свою работу и классы в том чисел поддерживают фиксированную ширину. то и менять ничего не нужно!
Естественно я так делать не буду!
Для этого есть более цивилизованные методы установки фиксированной ширины, сегодня, только что я сделал новую таблицу(без таблиц никуда! )
Мы будем обращаться к ширине столбца по порядковому номеру столбца!
Чтобы не рассусоливать! Нам нужен первый столбец, чтобы его фиксированная ширина была 30%!
Специально не убрал два класса
.table.td_child td:nth-child(1) {
width: 30%;
}
А