Как изменить ширину столбца таблицы html

Ширина столбца её выставлять нескольким способами Ширина столбца самой таблице ширина столбца процентах пикселях ширина столбца css Напоминаю ширина обозначается английским словом Width Мы сделали таблицу изменили её ширину поставили посередине про ш...

Ширина столбца будем её выставлять нескольким способами. Ширина столбца в самой таблице, ширина столбца в процентах и пикселях, + ширина столбца через css.

  • В чем измеряется ширина столбца!?

    Если мы помним, из предыдущих тем, то ширина таблицы измеряется в

    1. %,

    2. пикселях(px).

    3. Есть еще много разных единицы измерений.

    Эти свойства наследуют столбцы! Чтобы задать ширину столбца, надо знать, как устанавливать свойства css — их всего три.

  • Для того, чтобы вы смогли увидеть границы ширины столбцов, поставим border=»1″

    Ширина столбца в процентах

    Давайте поэкспериментируем! С шириной столбца в процентах!

    Создадим таблицу с тремя столбцами!

    И присвоим им ширину 25% + 50% + 25% сумма должна быть равна 100%.

    Как видим, наша страница заполняет полное пространство на данной странице.

    код:

    <table border=»1″ width=»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

    код:

    <table border=»1″>
        <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»:

    <td> Содержание столбца.</td>

    Есть несколько вариантов, как прописать ширину столбцов.

    К примеру, если вы пропишите сам столбец и к нему прикрепите ширину.

    Вот так:

    Но у этого способа есть один самый главный минус — все столбцы на странице будут иметь эту ширину и если эти стили прописаны в главном файл css? то все столбцы, на всем сайте будут иметь именно эту ширину!

    Поэтому, для каждого столбца нужно поставить отдельный класс или ид.

    Например — таблица с шириной через css.

    Обратите внимание, что на третьем столбце ширина не прописана — вопрос — какой ширины должен быть третий столбец!?

     <style>.example{ width: 100%; }

    .example td.first{ width: 25%; }

    .example td.second{ width: 50%; }</style>

    Код:

    <table class=»example»>
        <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
  • Фиксированная ширина столбца

    Как сделать ширину столбца фиксированной!?

    Тут… у меня есть некое смущение!blush
    смайлы Почему!?

    Давайте данный пункт разделим еще на два подпункта:

    1). Теория и фиксированной ширине столбца, это свойство table-layout со значением fixed :

    table-layout : fixed;

    Специально сделал отдельный пример, где вы можете, попробовать разобраться, что к чему и есть ли какая-то разница с присутствием или отсутствием данного свойства! И подпункт 2

    Код страницы с фиксированной шириной столбца:

    <!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>

    2). О table-layout : fixed;

    У меня … в самом начале моего пути, было несколько сайтов построенных чисто на таблицах! И приверженцем таблиц я был очень долго — столько иногда не живут…!

    НО! НИКОГДА, даже не слышал и не нуждался в таком свойстве, как фиксированная ширина столбца —

    table-layout : fixed;

    !

    Здесь, конечно, идет речь не о самом столбце, а о таблице вообще! Но тем не менее!

    Но как же я делал фиксированную ширину столбца!?

    Как я уже говорил несколько раз, что стили css можно применить нескольким способами!
    Чтобы не нести пустопорожнее, возьмем в качестве примера страницу с фиксированными столбцами! И откроем первую линию <tr>

    Что мы здесь видим!? Что у каждого столбца есть свой класс(это надо делать, только для первой линии <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)

    Как можно сделать фиксированную ширину без классов, которые указаны в предыдущем пункте! Эта таблица, что приведена в качестве примера, была сделана уже довольно давно и поскольку она выполняет свою работу и классы в том чисел поддерживают фиксированную ширину. то и менять ничего не нужно!
    НО СЕГОДНЯ!

    Естественно я так делать не буду!

    Для этого есть более цивилизованные методы установки фиксированной ширины, сегодня, только что я сделал новую таблицу(без таблиц никуда! wall
    смайлы)

    Мы будем обращаться к ширине столбца по порядковому номеру столбца!

    Чтобы не рассусоливать! Нам нужен первый столбец, чтобы его фиксированная ширина была 30%!

    Специально не убрал два класса .table.td_child в них есть своя фишка(о которой чуть ниже)!
    Если мы хотим обратиться к первому столбцуtd, то пишем так : td:nth-child(1)

    .table.td_child td:nth-child(1) {

    width: 30%;

    }

    А фишка в чем!? Что все таблицы с классом table будут иметь свободные ширины столбцов, если это не оговорено отдельно! Вот этот класс td_child и есть отдельно…! Т.е. в данном случае, первый столбец всегда будет 30%

    I’ve got a simple table that is used for an inbox as follows:

    <table border="1">
         <tr>
            <th>From</th>
            <th>Subject</th>
            <th>Date</th>
        </tr>
    </table>
    

    How do I set the width so the From and Date are 15% of the page width and the Subject is 70%. I also want the table to take up the whole page width.

    Alberto Sinigaglia's user avatar

    asked May 30, 2009 at 2:41

    alamodey's user avatar

    <table style="width: 100%">
        <colgroup>
           <col span="1" style="width: 15%;">
           <col span="1" style="width: 70%;">
           <col span="1" style="width: 15%;">
        </colgroup>
        
        
        
        <!-- Put <thead>, <tbody>, and <tr>'s here! -->
        <tbody>
            <tr>
                <td style="background-color: #777">15%</td>
                <td style="background-color: #aaa">70%</td>
                <td style="background-color: #777">15%</td>
            </tr>
        </tbody>
    </table>

    Flimm's user avatar

    Flimm

    129k44 gold badges244 silver badges254 bronze badges

    answered May 30, 2009 at 2:48

    Gordon Gustafson's user avatar

    Gordon GustafsonGordon Gustafson

    39.6k25 gold badges113 silver badges157 bronze badges

    14

    table {
      width: 100%;
      border: 1px solid #000;
    }
    th.from, th.date {
      width: 15%
    }
    th.subject {
      width: 70%; /* Not necessary, since only 70% width remains */
    }
    <table>
      <thead>
        <tr>
          <th class="from">From</th>
          <th class="subject">Subject</th>
          <th class="date">Date</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td>[from]</td>
          <td>[subject]</td>
          <td>[date]</td>
        </tr>
      </tbody>
    </table>

    The best practice is to keep your HTML and CSS separate for less code duplication, and for separation of concerns (HTML for structure and semantics, and CSS for presentation).

    Note that, for this to work in older versions of Internet Explorer, you may have to give your table a specific width (e.g., 900px). That browser has some problems rendering an element with percentage dimensions if its wrapper doesn’t have exact dimensions.

    Ahmad Shahbaz's user avatar

    answered May 30, 2009 at 2:47

    Ron DeVera's user avatar

    Ron DeVeraRon DeVera

    14.2k6 gold badges41 silver badges36 bronze badges

    4

    Use the CSS below, the first declaration will ensure your table sticks to the widths you provide (you’ll need to add the classes in your HTML):

    table{
      table-layout:fixed;
    }
    th.from, th.date {
      width: 15%;
    }
    th.subject{
      width: 70%;
    }
    

    answered Jun 14, 2011 at 13:40

    Pete's user avatar

    PetePete

    98410 silver badges7 bronze badges

    2

    Alternative way with just one class while keeping your styles in a CSS file, which even works in IE7:

    <table class="mytable">
        <tr>
            <th>From</th>
            <th>Subject</th>
            <th>Date</th>
        </tr>
    </table>
    <style>
        .mytable td, .mytable th { width:15%; }
        .mytable td + td, .mytable th + th { width:70%; }
        .mytable td + td + td, .mytable th + th + th { width:15%; }
    </style>
    

    More recently, you can also use the nth-child() selector from CSS3 (IE9+), where you’d just put the nr. of the respective column into the parenthesis instead of stringing them together with the adjacent selector. Like this, for example:

    <style>
        .mytable tr > *:nth-child(1) { width:15%; }
        .mytable tr > *:nth-child(2) { width:70%; }
        .mytable tr > *:nth-child(3) { width:15%; }
    </style>
    

    answered Oct 11, 2013 at 10:49

    DanMan's user avatar

    DanManDanMan

    11.2k4 gold badges39 silver badges59 bronze badges

    6

    These are my two suggestions.

    1. Using classes. There is no need to specify width of the two other columns as they will be set to 15% each automatically by the browser.

          table { table-layout: fixed; }
          .subject { width: 70%; }
          <table>
            <tr>
              <th>From</th>
              <th class="subject">Subject</th>
              <th>Date</th>
            </tr>
          </table>
    2. Without using classes. Three different methods but the result is identical.

      a)

          table { table-layout: fixed; }
          th+th { width: 70%; }
          th+th+th { width: 15%; }
          <table>
            <tr>
              <th>From</th>
              <th>Subject</th>
              <th>Date</th>
            </tr>
          </table>

      b)

          table { table-layout: fixed; }
          th:nth-of-type(2) { width: 70%; }
          <table>
            <tr>
              <th>From</th>
              <th>Subject</th>
              <th>Date</th>
            </tr>
          </table>

      c) This one is my favourite. Same as b) but with better browser support.

          table { table-layout: fixed; }
          th:first-child+th { width: 70%; }
          <table>
            <tr>
              <th>From</th>
              <th>Subject</th>
              <th>Date</th>
            </tr>
          </table>

    Mogsdad's user avatar

    Mogsdad

    44k21 gold badges151 silver badges272 bronze badges

    answered Apr 26, 2016 at 2:14

    tomasz86's user avatar

    tomasz86tomasz86

    86910 silver badges9 bronze badges

    Add colgroup after your table tag. Define width and number of columns here, and add the tbody tag. Put your tr inside of tbody.

    <table>
        <colgroup>
           <col span="1" style="width: 30%;">
           <col span="1" style="width: 70%;">
        </colgroup>
        
        
        <tbody>
            <tr>
                <td>First column</td>
                <td>Second column</td>
            </tr>
        </tbody>
    </table>
    

    kunigami's user avatar

    kunigami

    3,0264 gold badges25 silver badges42 bronze badges

    answered Mar 7, 2019 at 6:24

    Abdus Salam Azad's user avatar

    Depending on your body (or the div which is wrapping your table) ‘settings’ you should be able to do this:

    body {
      width: 98%;
    }
    
    table {
      width: 100%;
    }
    
    
    th {
      border: 1px solid black;
    }
    
    
    th.From, th.Date {
      width: 15%;
    }
    
    th.Date {
      width: 70%;
    }
    
    
    <table>
      <thead>
        <tr>
          <th class="From">From</th>
          <th class="Subject">Subject</th>
          <th class="Date">Date</th>
        </tr>
       </thead>
       <tbody>
         <tr>
           <td>Me</td>
           <td>Your question</td>
           <td>5/30/2009 2:41:40 AM UTC</td>
         </tr>
       </tbody>
    </table>
    

    Demo

    answered May 30, 2009 at 2:49

    Boris Guéry's user avatar

    Boris GuéryBoris Guéry

    47.1k7 gold badges52 silver badges87 bronze badges

    Try this instead.

    <table style="width: 100%">
        <tr>
            <th style="width: 20%">
               column 1
            </th>
            <th style="width: 40%">
               column 2
            </th>
            <th style="width: 40%">
               column 3
            </th>
        </tr>
        <tr>
            <td style="width: 20%">
               value 1
            </td>
            <td style="width: 40%">
               value 2
            </td>
            <td style="width: 40%">
               value 3
            </td>
        </tr>
    </table>
    

    answered Jul 4, 2014 at 9:31

    Milan's user avatar

    MilanMilan

    2,9651 gold badge23 silver badges26 bronze badges

        table { table-layout: fixed; }
        .subject { width: 70%; }
        <table>
          <tr>
            <th>From</th>
            <th class="subject">Subject</th>
            <th>Date</th>
          </tr>
        </table>

    answered Aug 24, 2016 at 2:46

    Hector David's user avatar

    Here’s another minimal way to do it in CSS that works even in older browsers that do not support :nth-child and the like selectors: http://jsfiddle.net/3wZWt/.

    HTML:

    <table>
        <tr>
            <th>From</th>
            <th>Subject</th>
            <th>Date</th>
        </tr>
        <tr>
            <td>Dmitriy</td>
            <td>Learning CSS</td>
            <td>7/5/2014</td>
        </tr>
    </table>
    

    CSS:

    table {
        border-collapse: collapse;
        width: 100%;
    }
    
    tr > * {
        border: 1px solid #000;
    }
    
    tr > th + th {
        width: 70%;
    }
    
    tr > th + th + th {
        width: 15%;
    }
    

    answered Jul 5, 2014 at 5:20

    DRD's user avatar

    DRDDRD

    5,42513 silver badges14 bronze badges

    <table>
      <col width="130">
      <col width="80">
      <tr>
        <th>Month</th>
        <th>Savings</th>
      </tr>
      <tr>
        <td>January</td>
        <td>$100</td>
      </tr>
      <tr>
        <td>February</td>
        <td>$80</td>
      </tr>
    </table>
    

    Demo

    answered Jan 28, 2015 at 9:35

    Srinivas Erukulla's user avatar

    1

    Don’t use the border attribute, use CSS for all your styling needs.

    <table style="border:1px; width:100%;">
        <tr>
                <th style="width:15%;">From</th>
                <th style="width:70%;">Subject</th>
                <th style="width:15%;">Date</th>
        </tr>
    ... rest of the table code...
    </table>
    

    But embedding CSS like that is poor practice — one should use CSS classes instead, and put the CSS rules in an external CSS file.

    answered May 30, 2009 at 2:49

    Etienne Perot's user avatar

    Etienne PerotEtienne Perot

    4,6747 gold badges40 silver badges50 bronze badges

    1

    style="column-width:300px;white-space: normal;"
    

    jwheron's user avatar

    jwheron

    2,5572 gold badges30 silver badges40 bronze badges

    answered Sep 20, 2018 at 18:26

    Wut Worawit's user avatar

    1

    Мы привыкли, что таблица состоит из строк и столбцов и, вставляя таблицу в Word, мы указываем 3 столбца на 2 строки. Вставляя таблицу на HTML-страницу, сначала мы должны показать что сейчас будет таблица. Для этого воспользуемся тэгом <TABLE>. Далее указываем, что сейчас будет строка, используя тэг <TR>. А в этой строке будет три ячейки, и мы пишем три раза <TD>…</TD>.

    Получим:


    <TABLE>

    <TR>

    <TD>…</TD>

    <TD>…</TD>

    <TD>…</TD>

    Строка закончилась и мы должны ее закрыть </TR>.

    Теперь начинается новая строка, открываем <TR>. Опять три ячейки — <TD>…</TD> записываем трижды. Строка закончилась </TR>. Таблица закончилась </TABLE>.

    Получаем:


    <TABLE> /*начало таблицы*/

    <TR> /*начало строки*/

    <TD>…</TD> /*первая ячейка*/

    <TD>…</TD> /*вторая ячейка*/

    <TD>…</TD>/*третья ячейка*/

    </TR> /*конец строки*/

    <TR> /*начало строки*/

    <TD>…</TD> /*первая ячейка*/

    <TD>…</TD> /*вторая ячейка*/

    <TD>…</TD>/*третья ячейка*/

    </TR> /*конец строки*/

    </TABLE>/*конец таблицы*/

    Но при записи этого кода мы не увидим каких-либо изменений. Нет границ, нет содержимого ячеек.

    Пример


    <TABLE>

    <TR>

    <TD>№</TD>

    <TD>Фамилия</TD>

    <TD>Номер телефона</TD>

    </TR>

    <TR>

    <TD>1</TD>

    <TD>Фрося Бурлакова</TD>

    <TD>8-952-987-13-20</TD>

    </TR>

    </TABLE>

    Результат

    создание таблицы

    Как задать границу таблицы

    Добавим границу. Для этого в <TABLE&gt; нужно указать border (граница) и ее толщину = 1.


    <TABLE BORDER=1>

    Результат

    границы таблицы

    Как изменить цвет границы

    Изменим теперь цвет границы. Для этого в тэг <TABLE> нужно внести атрибут BORDERCOLOR и указать значение цвета.

    Зададим цвет для границы зеленый.


    <TABLE BORDER=1 BGCOLOR=”#006600” >

    Смотрим результат:

    цвет границы

    Замечание. Если при этом не будет указан размер границы отличный от нуля, то границы все равно видно не будет.

    Как задать ширину таблицы

    Ширина каждого столбца задается по ее содержимому. Для того чтобы изменить размер таблицы, нужно задать значение ее ширины. Увеличим размер таблицы и зададим его значение в  400 точек.

    Замечание. Размер таблицы можно указывать в точках


    <TABLE WIDTH=”800”>

    или в процентах (в процентах от размера окна браузера)


    <TABLE WIDTH=”50%”>

    Причем, в-первом случае размер таблицы не будет меняться, а во-втором, размер таблицы будет зависеть от размера окна браузера.

    Просмотрим результат в браузере:

    ширина таблицы

    Как выровнять таблицу

    Не всегда таблица должна располагаться по левому краю. Давайте расположим наш справочник по центру, для этого перед таблицей установим тэг <P ALIGN=”CENTER”>, а после таблицы его закроем:


    <P ALIGN="CENTER">

    <TABLE BORDER=1 BorderCOLOR=”#006600” width="400">

    <TR>

    <TD>№</TD>

    <TD>Фамилия</TD>

    <TD>Номер телефона</TD>

    </TR>

    <TR>

    <TD>1</TD>

    <TD>Фрося Бурлакова</TD>

    <TD>8-952-987-13-20</TD>

    </TR>

    </TABLE>

    </P>

    Как закрасить таблицу

    Давайте закрасим нашу таблицу желтым цветом. Для этого в тэге <TABLE> пропишем BGCOLOR и укажем цвет.

    Наша страница будет иметь код:


    <HTML>

    <HEAD>

    <TITLE>Телефонный справочник </TITLE>

    </HEAD>

    <BODY>

    <P ALIGN="CENTER">

    <TABLE BORDER=1 BorderCOLOR=”#006600” width="400" BGCOLOR="#FFFFCC">

    <TR>

    <TD>№</TD>

    <TD>Фамилия</TD>

    <TD>Номер телефона</TD>

    </TR>

    <TR>

    <TD>1</TD>

    <TD>Фрося Бурлакова</TD>

    <TD>8-952-987-13-20</TD>

    </TR>

    </TABLE>

    </P>

    </BODY>

    </HTML>

    А в браузере

    фон таблицы

    Как закрасить строку

    Теперь закрасим верхнюю строку (шапку) в зеленый. Мы хотим закрасить строку, поэтому и атрибут BGCOLOR должны указать в тэге TR.


    <TR BGCOLOR=”#99CC33”>

    Результат

    фон строки в таблице

    Как закрасить ячейку

    Дополним нашу таблицу данными еще нескольких человек


    <HTML>

    <HEAD>

    <TITLE>Телефонный справочник </TITLE>

    </HEAD>

    <BODY>

    <P ALIGN="CENTER">

    <TABLE BORDER=1 BorderCOLOR=”#006600” width="400" BGCOLOR="#FFFFCC">

    <TR BGCOLOR=”#99CC33”>

    <TD>№</TD>

    <TD>Фамилия</TD>

    <TD>Номер телефона</TD>

    </TR>

    <TR>

    <TD>1</TD>

    <TD>Фрося Бурлакова</TD>

    <TD>8-952-987-13-20</TD>

    </TR>

    <TR>

    <TD>2</TD>

    <TD>Иван Петров</TD>

    <TD>8-918-964-70-11</TD>

    </TR>

    <TR>

    <TD>3</TD>

    <TD>Афоня Ивлев</TD>

    <TD>8-961-594-12-45</TD>

    </TR>

    </TABLE>

    </P>

    </BODY>

    </HTML>

    Результат

    фон ячейки

    Теперь давайте закрасим столбец с нумерацией. Так как в HTML нет понятия столбец, то на первый взгляд это выглядит затруднительно. Но на самом деле все довольно просто: в каждой строке нужно закрасить первую ячейку. То есть в тэге <TD> прописать атрибут BGCOLOR и указать цвет


    <HTML>

    <HEAD>

    <TITLE>Телефонный справочник </TITLE>

    </HEAD>

    <BODY>

    <P ALIGN="CENTER">

    <TABLE BORDER=1 BorderCOLOR=”#006600” width="400" BGCOLOR="#FFFFCC">

    <TR BGCOLOR=”#99CC33”>

    <TD>№</TD>

    <TD>Фамилия</TD>

    <TD>Номер телефона</TD>

    </TR>

    <TR>

    <TD BGCOLOR=”#FFFF99”>1</TD>

    <TD>Фрося Бурлакова</TD>

    <TD>8-952-987-13-20</TD>

    </TR>

    <TR>

    <TD BGCOLOR=”#FFFF99”>2</TD>

    <TD>Иван Петров</TD>

    <TD>8-918-964-70-11</TD>

    </TR>

    <TR>

    <TD BGCOLOR=”#FFFF99”>3</TD>

    <TD>Афоня Ивлев</TD>

    <TD>8-961-594-12-45</TD>

    </TR>

    </TABLE>

    </P>

    </BODY>

    </HTML>

    В браузере вы увидите такую таблицу:

    фон ячейки в таблице

    Как задать высоту таблицы (строки)

    HTML дает возможность задать как высоту всей таблицы, так и отдельных строк.

    Для задания высоты таблицы атрибут HEIGHT нужно указать в тэге TABLE, а чтобы изменить высоту отдельной строки – указать этот атрибут в тэге TR.

    Для примера увеличим высоту первой строки


    <HTML>

    <HEAD>

    <TITLE>Телефонный справочник </TITLE>

    </HEAD>

    <BODY>

    <P ALIGN="CENTER">

    <TABLE BORDER=1 BorderCOLOR=”#006600” width="400" BGCOLOR="#FFFFCC">

    <TR BGCOLOR=”#99CC33” HEIGHT="50">

    <TD>№</TD>

    <TD>Фамилия</TD>

    <TD>Номер телефона</TD>

    </TR>

    <TR>

    <TD BGCOLOR=”#FFFF99”>1</TD>

    <TD>Фрося Бурлакова</TD>

    <TD>8-952-987-13-20</TD>

    </TR>

    <TR>

    <TD BGCOLOR=”#FFFF99”>2</TD>

    <TD>Иван Петров</TD>

    <TD>8-918-964-70-11</TD>

    </TR>

    <TR>

    <TD BGCOLOR=”#FFFF99”>3</TD>

    <TD>Афоня Ивлев</TD>

    <TD>8-961-594-12-45</TD>

    </TR>

    </TABLE>

    </P>

    </BODY>

    </HTML>

    Результат

    высота строки

    Как изменить ширину столбца

    Теперь увеличим ширину первого столбца. Так как в HTML нет понятия столбец, то нам придется указать ширину первой ячейки верхней строки.


    <HTML>

    <HEAD>

    <TITLE>Телефонный справочник </TITLE>

    </HEAD>

    <BODY>

    <P ALIGN="CENTER">

    <TABLE BORDER=1 BorderCOLOR=”#006600” width="400" BGCOLOR="#FFFFCC">

    <TR BGCOLOR=”#99CC33” HEIGHT="50">

    <TD WIDTH="50">№</TD>

    <TD>Фамилия</TD>

    <TD>Номер телефона</TD>

    </TR>

    <TR>

    <TD BGCOLOR=”#FFFF99”>1</TD>

    <TD>Фрося Бурлакова</TD>

    <TD>8-952-987-13-20</TD>

    </TR>

    <TR>

    <TD BGCOLOR=”#FFFF99”>2</TD>

    <TD>Иван Петров</TD>

    <TD>8-918-964-70-11</TD>

    </TR>

    <TR>

    <TD BGCOLOR=”#FFFF99”>3</TD>

    <TD>Афоня Ивлев</TD>

    <TD>8-961-594-12-45</TD>

    </TR>

    </TABLE>

    </P>

    </BODY>

    </HTML>

    Результат

    ширина столбца

    Выравнивание содержимого таблицы (по горизонтали и вертикали)

    Выравнивать содержимое таблицы, строки или ячейки можно как по горизонтали (по верхнему краю, по середине, по нижнему краю), так и по вертикали (по левому краю, по средине, по правому краю).

    И если с выравниванием по вертикали все понятно (у тэгов TABLE, TR и TD есть атрибут ALIGN). То как выровнять по горизонтали не совсем понятно.

    Для выравнивания содержимого таблицы, строки или ячейки по горизонтали существует атрибут VALIGN. И этот атрибут имеет свои параметры TOP (выравнивание по верхнему краю), MIDDLE (по середине), BOTTOM (по нижнему краю).

    Для нашей шапки установим  выравнивание по центру, по середине.


    <TR ALIGN="CENTER" VALIGN=”MIDDLE”>

    Также выровняем содержание ячеек с нумерацией и телефонами по центру.


    <HTML>

    <HEAD>

    <TITLE>Телефонный справочник </TITLE>

    </HEAD>

    <BODY>

    <P ALIGN="CENTER">

    <TABLE BORDER=1 BorderCOLOR=”#006600” width="400" BGCOLOR="#FFFFCC">

    <TR BGCOLOR=”#99CC33” HEIGHT="50" VALIGN="MIDDLE" ALIGN="CENTER">

    <TD WIDTH="50">№</TD>

    <TD>Фамилия</TD>

    <TD>Номер телефона</TD>

    </TR>

    <TR>

    <TD ALIGN="CENTER" BGCOLOR=”#FFFF99”>1</TD>

    <TD>Фрося Бурлакова</TD>

    <TD ALIGN="CENTER">8-952-987-13-20</TD>

    </TR>

    <TR>

    <TD ALIGN="CENTER" BGCOLOR=”#FFFF99”>2</TD>

    <TD>Иван Петров</TD>

    <TD ALIGN="CENTER">8-918-964-70-11</TD>

    </TR>

    <TR>

    <TD ALIGN="CENTER" BGCOLOR=”#FFFF99”>3</TD>

    <TD>Афоня Ивлев</TD>

    <TD ALIGN="CENTER">8-961-594-12-45</TD>

    </TR>

    </TABLE>

    </P>

    </BODY>

    </HTML>

    В браузере увидим:

    Выравнивание содержимого таблицы

    Атрибут width HTML используется для установки ширины ячейки таблицы, которое переопределяет значение по умолчанию. Он устарел. Используйте CSS для управления разметкой ячеек в HTML таблицах.

    Настройка ширины столбца таблицы в HTML

    Атрибут width, в настоящее время устаревший, когда-то являлся стандартным методом регулирования ширины столбцов таблицы. По умолчанию, браузер будет настраивать столбцы таблицы так, чтобы соответствовать ее содержимому. Но если нужно контролировать ширину каждого столбца, вы можете это сделать, настроив ширину для каждого элемента <td> или <th> отдельной строки. Посмотрим, как это делали раньше с помощью атрибута width, а затем как то же самое можно сделать с помощью CSS. Но вначале нам нужен эталон для сравнения:

    <table>   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td>Little</td>     <td>Lots and lots and lots and lots of content, so much that we might even need a line break.</td>   </tr> </table>

    Как видите, в первом случае мы не применили CSS или HTML td width. Что браузер сделает с такой таблицей?

    Thin Really Really Really Wide
    Little Lots and lots and lots and lots of content, so much that we might even need a line break.

    Браузер выделил для второго столбца намного больше места, чем для первого. Теперь сделаем то же самое, но воспользуемся атрибутом width, чтобы принудительно задать столбцам одинаковый размер:

    <table>   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td width="50%">Little</td>     <td width="50%">Lots and lots and lots and lots of content, so much that we might even need a line break.</td>   </tr> </table>

    В обоих случаях браузер должен предоставить каждому столбцу одинаковую ширину. Но первая таблица должна автоматически устанавливать размер, чтобы заполнить доступное пространство, в то время как вторая имеет фиксированную ширину.

    Thin Really Really Really Wide
    Little Lots and lots and lots and lots of content, so much that we might even need a line break.

    Довольно неплохо. К сожалению, это некорректный HTML- код, поскольку HTML table width был признан устаревшим. Но можно сделать то же самое с помощью простого кода CSS:

    <style> .equal-width td {   width: 50%; } </style> <table class="equal-width">   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td>Little</td>     <td>Lots and lots and lots and lots of content, so much that it will require a line break.</td>   </tr> </table>

    Давайте посмотрим, как браузер выведет таблицу, использующую CSS вместо атрибута width:

    Thin Really Really Really Wide
    Little Lots and lots and lots and lots of content, so much that it will require a line break.

    Регулируемая высота строки таблицы

    Еще один атрибут, тесно связанный с шириной, это высота (height). Этот атрибут также устарел, поэтому его не следует использовать. Но поскольку мы говорим о настройке ширины столбцов, то нужно рассмотреть и регулировку высоты строк. Вот как это делалось раньше с помощью устаревшего атрибута:

    <table>   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td height="200px">Little</td>     <td>Lots and lots and lots and lots of content, so much that it will require a line break.</td>   </tr> </table>

    Как браузер выводит этот пример:

    Thin Really Really Really Wide
    Little Lots and lots and lots and lots of content, so much that it will require a line break.

    Поскольку HTML table column width устарел, мы покажем, как сделать то же самое с помощью CSS:

    <style> .tall-row td {   height: 200px; } </style> <table class="tall-row">   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td>Little</td>     <td>Lots and lots and lots and lots of content, so much that it will require a line break.</td>   </tr> </table>

    Браузер должен отобразить этот код практически идентично предыдущему. Давайте посмотрим, так ли это:

    Thin Really Really Really Wide
    Little Lots and lots and lots and lots of content, so much that it will require a line break.

    Если честно, я не могу представить, зачем нужно контролировать высоту строки с помощью HTML td width. Гораздо больше смысла в том, чтобы настроить внешний и внутренний отступ для контента элемента <td> и позволить браузеру автоматически устанавливать высоту строки, основываясь на этой информации. Вот как можно применить эту стратегию:

    <style> .tall-row td {   padding: 80px 10px; } </style> <table class="tall-row">   <tr>     <th>Thin</th>     <th>Really Really Really Wide</th>   </tr>   <tr>     <td>Little</td>     <td>Lots and lots and lots and lots of content, so much that it will require a line break.</td>   </tr> </table>

    Этот код CSS добавляет отступы в 80 пикселей до и после, и 10 пикселей влево и вправо от каждого элемента <td>. Вот результат:

    Thin Really Really Really Wide
    Little Lots and lots and lots and lots of content, so much that it will require a line break.

    Опубликовано: 29.09.2010 Последняя правка: 08.12.2015

    Таблицы

    Сегодня вы познакомитесь с еще одним очень мощным элементом создания сайтов — HTML-таблицами. А почему мощным? Видите ли, с давних пор и по сегодняшний день, чаще всего таблицы в HTML используются не по их прямому назначению — отображению табличных данных, а для создания глобального каркаса страницы. То есть создается таблица, растягивается во всю ширину страницы, а потом в ее левом столбце делают одно меню, в правом — другое, в среднем располагают основную информацию и так далее.

    Кстати, если не знали, то создание сайтов, а вернее HTML-кода, называется версткой, и вы сейчас учитесь именно ей. Вообще существует три вида верстки: табличная, о которой я вам рассказал выше; слоями (блочная), требующая среднего уровня знания стилей (CSS) и комбинированная. До сих пор в интернете идут ожесточенные споры о том, какая же из них лучше, но поверьте, спорят там в основном любители споров или новички, так как любой профессионал вам скажет — лучшая верстка та, которая больше подходит в конкретном случае, вот и все! А спорить о том, что лучше — танк или самолет — пустая трата времени. Но справедливости ради скажу, что по многим параметрам блочная верстка все же предпочтительней, поэтому, если верстальщик может сделать задание, как с помощью таблиц, так и с помощью блоков, то обычно выбирается последнее. И это правильно. Но вам об этом задумываться рано, ведь, как я уже сказал, с помощью одного языка HTML можно верстать только таблицами.

    Для создания простой HTML-таблицы надо использовать три типа тегов, это <TABLE>, <TR> и <TD>. Поэтому давайте сделаем так: посмотрите на пример указанный ниже и попробуйте самостоятельно догадаться, какие теги и для чего нужны.

    Пример создания таблиц в HTML

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
    <title>Создание HTML-таблиц</title>
    </head>
    <body>
     <table>
      <tr><td>Ячейка 1.1</td><td>Ячейка 1.2</td><td>Ячейка 1.3</td></tr>
      <tr><td>Ячейка 2.1</td><td>Ячейка 2.2</td><td>Ячейка 2.3</td></tr>
      <tr><td>Ячейка 3.1</td><td>Ячейка 3.2</td><td>Ячейка 3.3</td></tr>
     </table>
    </body>
    </html>

    Результат в браузере

    Ячейка 1.1 Ячейка 1.2 Ячейка 1.3
    Ячейка 2.1 Ячейка 2.2 Ячейка 2.3
    Ячейка 3.1 Ячейка 3.2 Ячейка 3.3

    Теперь проверим ваши догадки. И опять вам говорю — не старайтесь все запоминать, не надо, главное — понять. Итак:

    Тег <TABLE>…</TABLE> — это корневой элемент любой таблицы, между открывающим и закрывающим тегами которого находятся все остальные теги. Он является блочным, то есть создает до и после себя переводы строк в начало. А вот содержать он не может ни блочные, ни встроенные (уровня строки) теги, а только специальные теги таблицы из которых практически всегда используется <TR>, а остальные крайне редко. Не забыли еще, что значит «содержать»? Это значит, что в <TABLE> на первом уровне вложенности запрещено указывать встроенные или блочные теги.

    Тег <TR>…</TR> используется для создания рядов (строк) таблиц и может содержать только теги ячеек, о которых мы поговорим дальше.

    Тег <TD>…</TD> создает ячейки таблиц и должен располагаться только внутри тега <TR>. А вот содержать он может, внимание, и блочные, и встроенные элементы, в том числе и обычный текст. Кстати, обратите внимание, что в таблицах не существует тегов создания столбцов (колонок), потому что они формируются из элементов <TD>.

    Тег <TH>…</TH>. Да, его нет в нашем примере, так как это практически аналог тега <TD> и применяется вместо него, когда необходимо сделать заголовочные ячейки. Такие ячейки отличаются от обычных только тем, что браузеры выделяют в них текст жирным шрифтом и располагают содержимое по центру.

    При создании таблиц всегда обращайте внимание на то, чтобы во всех рядах было одинаковое количество ячеек. Разное количество не является в HTML ошибкой, но в таких случаях ваша табличка может просто «поехать» и все отобразиться совсем не так, как вы хотели.

    HTML-таблицы по центру, слева, справа

    По умолчанию браузеры располагают таблицы с левой стороны родительского элемента, в котором она находится. В большинстве случаев это вполне устраивает, особенно если таблицу растягивают во всю ширину. Но все-таки иногда хочется разместить HTML-таблицу по центру или справа.

    В прошлом у тега <TABLE> имелся атрибут align, с его помощью и можно было изменять положение таблицы. Но он стал устаревшим, и сколько еще времени его будут поддерживать браузеры — неизвестно, так как на смену пришли стили (CSS). И чтобы показать вам правильный метод, я использую атрибут style.

    <table style=«margin:0 auto 0 0»>…</table> — Таблица располагается слева. Это значение по умолчанию.

    <table style=«margin:0 0 0 auto»>…</table> — Расположение таблицы справа.

    <table style=«margin:0 auto 0 auto»>…</table> — HTML-таблица по центру.

    Теперь поясню. Используя эти значения, мы изменяем размер внешних полей (отступов) таблицы. Так как таблица является блочным HTML-элементом, а у блоков четыре стороны, то и параметры указываются для четырех сторон по часовой стрелке: style=«margin:сверху справа снизу слева». Ну, что такое ноль, я думаю, вы понимаете, а вот «auto» говорит браузеру, чтобы он сам высчитывал с данной стороны размер пустого пространства, исходя из значений других сторон. Вот и получается, что если с трех сторон ноль, то с четвертой — все остальное пространство, а если с двух сторон «auto», то значит делим внешние поля пополам.

    И самое главное — не бойтесь использовать CSS вместо чистого и, во многих ситуациях, «деревянного» и устаревшего HTML. Так как этим вы вкладываете в свое развитие, а не возвращаетесь к каменным топорам! Тем более я вам все преподношу «на блюдечке». :)

    Пример расположения таблицы по центру

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
    <title>HTML. Таблица по центру</title>
    </head>
    <body>
     <table style="margin:0 auto 0 auto">
      <tr><td>Ячейка 1.1</td><td>Ячейка 1.2</td><td>Ячейка 1.3</td></tr>
      <tr><td>Ячейка 2.1</td><td>Ячейка 2.2</td><td>Ячейка 2.3</td></tr>
      <tr><td>Ячейка 3.1</td><td>Ячейка 3.2</td><td>Ячейка 3.3</td></tr>
     </table>
    </body>
    </html>

    Результат в браузере

    Ячейка 1.1 Ячейка 1.2 Ячейка 1.3
    Ячейка 2.1 Ячейка 2.2 Ячейка 2.3
    Ячейка 3.1 Ячейка 3.2 Ячейка 3.3

    Изменение ширины HTML-таблиц и ячеек

    По умолчанию браузеры высчитывают ширину таблицы исходя из содержимого ее ячеек, а изменить ее можно, используя знакомый вам атрибут width, общий синтаксис такой:

    <table width=«число»>…</table> — любое неотрицательное число указывающее ширину в пикселях.

    <table width=«число%»>…</table> — неотрицательное число задающее ширину в процентах (%) исходя из ширины родительского контейнера, элемента в котором находится таблица.

    Тем не менее, если указанная ширина будет меньше, чем необходимо для размещения всего содержимого HTML-таблицы, то браузеры ее проигнорируют и увеличат до нужной.

    А вот атрибута width для изменения ширины ячеек нет, вернее он был, но устарел, поэтому снова применим стили (CSS).

    <th style=«width:значение»>…</th>

    <td style=«width:значение»>…</td>

    В качестве значений для ширины ячеек лучше тоже использовать только пиксели (px) и проценты (%). Естественно процентные размеры будут высчитываться исходя из ширины таблицы. Только не забудьте, что при указании размеров в атрибуте style, всегда после чисел пишутся единицы измерения, в том числе и пиксели.

    И тоже, если вы укажете ширину ячейки, а содержимое в нее не уместится — браузер проигнорирует вашу ширину и установит свою.

    В HTML-таблицах ширина столбца всегда равна его самой широкой ячейке, что, впрочем, вполне естественно вообще для любых таблиц. Поэтому, меняя ширину одной (любой) ячейки — вы меняете ширину всего столбца.

    Пример изменения ширины HTML-таблиц и ячеек

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
    <title>Ширина HTML-таблицы и ячеек</title>
    </head>
    <body>
     <table width="70%" border="2">
      <tr><th style="width:60%">Ячейка 1.1</th><th>Ячейка 1.2</th></tr>
      <tr><td>Ячейка 2.1</td><td>Ячейка 2.2</td></tr>
     </table>
    </body>
    </html>

    Результат в браузере

    Ячейка 1.1 Ячейка 1.2
    Ячейка 2.1 Ячейка 2.2

    Как вы уже знаете, по умолчанию браузеры не отрисовывают рамки у таблиц, поэтому, чтобы вы четко увидели картину изменения ширины, я установил атрибут border, о котором мы поговорим чуть позже.

    Изменение высоты HTML-таблиц и ячеек

    В стандартном HTML у тега <TABLE> нет атрибута для изменения высоты таблицы, браузеры ее автоматически высчитывают исходя из содержимого. А вот у стилей (CSS) такая возможность есть, поэтому их и будем использовать.

    <table style=«height:значение»>…</table> — указывайте высоту таблицы только в пикселях (px), так как процентную запись браузеры игнорируют.

    А вот для изменения высоты ячеек в HTML у тегов <TD> и <TH> все-таки был атрибут height (вот и пойми этих разработчиков), но он устарел, поэтому снова стили.

    <th style=«height:значение»>…</th>

    <td style=«height:значение»>…</td>

    Как и для ширины, используйте пиксели (px) или проценты (%), но здесь есть один момент. Когда вы указываете процентную запись, то конечно высота высчитывается исходя из размеров таблицы, поэтому если высота блока <TABLE> не указана — браузеры проигнорируют значения для ячеек.

    Ну и естественно браузеры проигнорируют ваши размеры, как для таблицы в целом, так и для ячеек, если содержимое не будет вмещаться.

    В HTML-таблицах высота строки (как и ширина столбца) всегда равна высоте ее самой высокой ячейки. Поэтому, меняя высоту одной (любой) ячейки — вы меняете высоту всей строки.

    Пример изменения высоты HTML-таблиц и ячеек

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
    <title>Ширина HTML-таблицы м ячеек</title>
    </head>
    <body>
     <table style="height:100px" border="2">
      <tr><th style="height:40%">Ячейка 1.1</th><th>Ячейка 1.2</th></tr>
      <tr><td style="height:60%">Ячейка 2.1</td><td>Ячейка 2.2</td></tr>
     </table>
    </body>
    </html>

    Результат в браузере

    Ячейка 1.1 Ячейка 1.2
    Ячейка 2.1 Ячейка 2.2

    Выравнивание в HTML-таблицах

    Если вы обратили внимание, то браузеры изначально определенным образом выравнивают содержимое ячеек таблиц. У обычных ячеек (<TD>) содержимое выравнивается горизонтально по левой стороне и вертикально по центру, а у заголовочных (<TH>) — в обоих случаях по центру.

    Для изменения выравнивания содержимого HTML-таблиц имеются атрибуты align и valign, которые указываются в тегах <TR> для рядов (строк) или <TD> и <TH> для отдельных ячеек:

    Горизонтальное выравнивание:

    align=«left» — Выравнивание по левой стороне ячейки.

    align=«center» — По центру.

    align=«right» — По правой стороне.

    Вертикальное выравнивание:

    valign=«top» — Выравнивание по верхней стороне ячейки.

    valign=«middle» — По центру.

    valign=«bottom» — По нижней стороне.

    Пример выравнивания в HTML-таблицах

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251">
    <title>Выравнивание в таблице HTML</title>
    </head>
    <body>
     <table style="height:110px" width="80%" border="2">
      <tr align="right" valign="top">
       <td style="height:50px">Ячейка 1.1</td>
       <td>Ячейка 1.2</td>
      </tr>
      <tr>
       <td valign="top" style="height:60px">Ячейка 2.1</td>
       <td>Ячейка 2.2</td>
      </tr>
     </table>
    </body>
    </html>

    Результат в браузере

    Ячейка 1.1 Ячейка 1.2
    Ячейка 2.1 Ячейка 2.2

    Фон HTML-таблиц

    В старых версиях HTML у тегов таблиц был специальный атрибут bgcolor, который изменял цвет фона всей таблицы или ее части. Но в уроке Меняем цвет текста и фона мы с вами изучили универсальный способ изменения фона абсолютно любых HTML-элементов, поэтому им и пользуйтесь.

    А вот фонового изображения у таблиц язык HTML вообще не предусматривал, поэтому в свое время производители браузеров ввели для этого атрибут — background. Браузеры и до сих пор его понимают, но опять же, в уроке Изображения для фонов вы уже научились правильно устанавливать изображения-фоны для любых элементов.

    Домашнее задание.

    Все задание я вам расписывать не буду, обрисую только некоторые моменты, просто сделайте так, как показано в результате примера. Если вы в свое время не скачали картинки для обучения, то можете скачать сейчас.

    1. Измените фон страницы и размер шрифта.
    2. В начале страницы создайте четыре ссылки-изображения.
    3. Ниже сделайте таблицу из одного ряда и двух столбцов. Растяните ее ширину на всю страницу, сделайте выравнивание по верхней стороне ряда и измените фон каждой ячейки.
    4. Сделайте ширину левой колонки 150px и поместите в нее ссылки-изображения.
    5. Под таблицей создайте текстовые ссылки.
    6. Сделайте так, чтобы при наведении курсора мыши на любую ссылку появлялась «всплывающая» подсказка.
    7. Не забывайте про Комментарии в HTML, они серьезно помогают при работе.

    Посмотреть результат → Посмотреть ответ

    How do I increase the width of a column in an HTML table?

    Below is my code. I am trying to get the second <td> tag in each row to expand so that there is more space between the input text box (1st <td> tag) and the name of the cookie and it’s price (3rd <td> tag). Any ideas?

    <!--Order Info. table -nested table 2 -->
    <!--This is the first nested table within the main table -->
            <table border="0" width="65%" cellpadding="2">
            <!--Row 1 -->
                    <tr>
                        <th colspan="3" align="left">Order Information</th>
                    </tr>
            <!--Row 2 -->   
                    <tr>
                        <td>QTY</td>
                        <td colspan="15"></td>
                        <td>Subtotal</td>
                        <td colspan="90"><input name="Gift Wrapping" id="Gift Wrapping" type="checkbox" /> Gift wrapping? (Additional charge of 1.95 per box)</td>
                    </tr>
            <!-- Row 3 -->  
                    <tr>
                        <td><input name="quantitya" id="quantitya" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Chocolate Nut - $10.99</td>
                        <td><input name="subtotala" id="subtotala" size="10" type="textbox" value="0"/></td>
                        <td colspan="40">If yes, note the text for the gift card:</td>
                    </tr>
            <!-- Row 4 -->  
                    <tr>
                        <td><input name="quantityb" id="quantityb" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Chocolate Chip - $9.99</td>
                        <td><input name="subtotalb" id="subtotalb" size="10" type="textbox" value="0"/></td>
                        <td colspan="5"><textarea wrap="soft" name="giftcardtext" id="giftcardtext" rows="3" cols="20" ></textarea></td> 
                    </tr>
            <!--Row 5 -->
                    <tr>
                        <td><input name="quantityc" id="quantityc" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Macadamia Nut - $12.99</td>
                        <td><input name="subtotalc" id="subtotalc" size="10" type="textbox" value="0"/></td> 
                    </tr>
            <!--Row 6 -->
                    <tr>
                        <td><input name="quantityd" id="quantityd" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Oatmeal Raisin - $10.99</td>
                        <td><input name="subtotald" id="subtotald" size="10" type="textbox" value="0"/></td> 
                    </tr>
            <!--Row 7 -->
                    <tr>
                        <td><input name="quantitye" id="quantitye" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Chocolate Dessert - $10.99</td>
                        <td><input name="subtotale" id="subtotale" size="10" type="textbox" value="0"/></td></td>
                        <td>Shipping:</td>
                        <td colspan="30"></td>
                        <td colspan="150">$5.95 for 1-5 boxes, $10.95 for five or more boxes</td>
                    </tr>
            <!--Row 8 -->
                    <tr>
                        <td><input name="quantityf" id="quantityf" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Butter - $7.99</td>
                        <td><input name="subtotalf" id="subtotalf" size="10" type="textbox" value="0"/></td></td>
                        <td>Total:</td>
                        <td colspan="30"></td>
                        <td colspan="1"><input name="totala" id="totala" size="3" type="textbox" value="0.00" /></td>
                    </tr>
            <!--Row 9 -->
                    <tr>
                        <td colspan="0"></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Subtotal</td>
                        <td><input name="subtotalg" id="subtotalg" size="10" type="textbox" value="0" /></td></td>
                    </tr>
            </table>
    

    Brian Tompsett - 汤莱恩's user avatar

    asked Feb 16, 2010 at 23:56

    Ashley's user avatar

    4

    You can do it in pixels or as a percentage:

    <TABLE BORDER="2" CELLPADDING="2" CELLSPACING="2" WIDTH="300">
    <TR>
    <TD WIDTH="100">Column 1</TD>
    <TD WIDTH="200">Column 2</TD>
    </TR>
    </TABLE>
    

    or

    <TABLE BORDER="2" CELLPADDING="2" CELLSPACING="2" WIDTH="100%">
    <TR>
    <TD WIDTH="25%">Column 1</TD>
    <TD WIDTH="75%">Column 2</TD>
    </TR>
    </TABLE>
    

    answered Feb 17, 2010 at 0:12

    Binary Nerd's user avatar

    Binary NerdBinary Nerd

    13.8k4 gold badges43 silver badges44 bronze badges

    You would give the column a width, either using inline styles

    <td style="width: 50%">
    

    or, better, in a style sheet

    td.column1 { width: 50% }
    ....
    <td class="column1">
    ....
    

    You can also specify padding for space between columns

    td.column1 { padding-right: 64px }
    

    by the way, the varying huge colspan values look very weird. What are they supposed to achieve?

    answered Feb 17, 2010 at 0:10

    Pekka's user avatar

    PekkaPekka

    438k140 gold badges968 silver badges1083 bronze badges

    If you need more space between table columns, you can use CSS margin/width properties with any value suitable for you. I would highly discourage including html visual formatting in your html code, albeit if you do, take the time to learn the meaning of some html properties, as «colspan» does not specify the width between tds, but combines them into one td.

    answered Feb 17, 2010 at 0:12

    Gal's user avatar

    GalGal

    22.7k32 gold badges97 silver badges117 bronze badges

    <td style="width: 100px;">Cell data here</td>
    

    Replace the number with whatever width you want. Note that the columns will be the max size throughout the table. So if column 2 is 200px in row 1 and 300px in row 2, the column will end up being 300px in all rows.

    answered Feb 17, 2010 at 0:13

    Matt McCormick's user avatar

    Matt McCormickMatt McCormick

    13k22 gold badges75 silver badges83 bronze badges

    After you resolve the colspan issue that Jared Updike brought up, I’d check out using CSS and increasing the values for padding-left and padding-right.

    answered Feb 17, 2010 at 0:19

    John's user avatar

    JohnJohn

    16k10 gold badges70 silver badges110 bronze badges

    How do I increase the width of a column in an HTML table?

    Below is my code. I am trying to get the second <td> tag in each row to expand so that there is more space between the input text box (1st <td> tag) and the name of the cookie and it’s price (3rd <td> tag). Any ideas?

    <!--Order Info. table -nested table 2 -->
    <!--This is the first nested table within the main table -->
            <table border="0" width="65%" cellpadding="2">
            <!--Row 1 -->
                    <tr>
                        <th colspan="3" align="left">Order Information</th>
                    </tr>
            <!--Row 2 -->   
                    <tr>
                        <td>QTY</td>
                        <td colspan="15"></td>
                        <td>Subtotal</td>
                        <td colspan="90"><input name="Gift Wrapping" id="Gift Wrapping" type="checkbox" /> Gift wrapping? (Additional charge of 1.95 per box)</td>
                    </tr>
            <!-- Row 3 -->  
                    <tr>
                        <td><input name="quantitya" id="quantitya" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Chocolate Nut - $10.99</td>
                        <td><input name="subtotala" id="subtotala" size="10" type="textbox" value="0"/></td>
                        <td colspan="40">If yes, note the text for the gift card:</td>
                    </tr>
            <!-- Row 4 -->  
                    <tr>
                        <td><input name="quantityb" id="quantityb" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Chocolate Chip - $9.99</td>
                        <td><input name="subtotalb" id="subtotalb" size="10" type="textbox" value="0"/></td>
                        <td colspan="5"><textarea wrap="soft" name="giftcardtext" id="giftcardtext" rows="3" cols="20" ></textarea></td> 
                    </tr>
            <!--Row 5 -->
                    <tr>
                        <td><input name="quantityc" id="quantityc" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Macadamia Nut - $12.99</td>
                        <td><input name="subtotalc" id="subtotalc" size="10" type="textbox" value="0"/></td> 
                    </tr>
            <!--Row 6 -->
                    <tr>
                        <td><input name="quantityd" id="quantityd" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Oatmeal Raisin - $10.99</td>
                        <td><input name="subtotald" id="subtotald" size="10" type="textbox" value="0"/></td> 
                    </tr>
            <!--Row 7 -->
                    <tr>
                        <td><input name="quantitye" id="quantitye" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Chocolate Dessert - $10.99</td>
                        <td><input name="subtotale" id="subtotale" size="10" type="textbox" value="0"/></td></td>
                        <td>Shipping:</td>
                        <td colspan="30"></td>
                        <td colspan="150">$5.95 for 1-5 boxes, $10.95 for five or more boxes</td>
                    </tr>
            <!--Row 8 -->
                    <tr>
                        <td><input name="quantityf" id="quantityf" size="3" type="textbox" value="0"/></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Butter - $7.99</td>
                        <td><input name="subtotalf" id="subtotalf" size="10" type="textbox" value="0"/></td></td>
                        <td>Total:</td>
                        <td colspan="30"></td>
                        <td colspan="1"><input name="totala" id="totala" size="3" type="textbox" value="0.00" /></td>
                    </tr>
            <!--Row 9 -->
                    <tr>
                        <td colspan="0"></td>
                        <td colspan="4"></td>
                        <td colspan="11" align="left">Subtotal</td>
                        <td><input name="subtotalg" id="subtotalg" size="10" type="textbox" value="0" /></td></td>
                    </tr>
            </table>
    

    Brian Tompsett - 汤莱恩's user avatar

    asked Feb 16, 2010 at 23:56

    Ashley's user avatar

    4

    You can do it in pixels or as a percentage:

    <TABLE BORDER="2" CELLPADDING="2" CELLSPACING="2" WIDTH="300">
    <TR>
    <TD WIDTH="100">Column 1</TD>
    <TD WIDTH="200">Column 2</TD>
    </TR>
    </TABLE>
    

    or

    <TABLE BORDER="2" CELLPADDING="2" CELLSPACING="2" WIDTH="100%">
    <TR>
    <TD WIDTH="25%">Column 1</TD>
    <TD WIDTH="75%">Column 2</TD>
    </TR>
    </TABLE>
    

    answered Feb 17, 2010 at 0:12

    Binary Nerd's user avatar

    Binary NerdBinary Nerd

    13.8k4 gold badges43 silver badges44 bronze badges

    You would give the column a width, either using inline styles

    <td style="width: 50%">
    

    or, better, in a style sheet

    td.column1 { width: 50% }
    ....
    <td class="column1">
    ....
    

    You can also specify padding for space between columns

    td.column1 { padding-right: 64px }
    

    by the way, the varying huge colspan values look very weird. What are they supposed to achieve?

    answered Feb 17, 2010 at 0:10

    Pekka's user avatar

    PekkaPekka

    438k140 gold badges968 silver badges1083 bronze badges

    If you need more space between table columns, you can use CSS margin/width properties with any value suitable for you. I would highly discourage including html visual formatting in your html code, albeit if you do, take the time to learn the meaning of some html properties, as «colspan» does not specify the width between tds, but combines them into one td.

    answered Feb 17, 2010 at 0:12

    Gal's user avatar

    GalGal

    22.7k32 gold badges97 silver badges117 bronze badges

    <td style="width: 100px;">Cell data here</td>
    

    Replace the number with whatever width you want. Note that the columns will be the max size throughout the table. So if column 2 is 200px in row 1 and 300px in row 2, the column will end up being 300px in all rows.

    answered Feb 17, 2010 at 0:13

    Matt McCormick's user avatar

    Matt McCormickMatt McCormick

    13k22 gold badges75 silver badges83 bronze badges

    After you resolve the colspan issue that Jared Updike brought up, I’d check out using CSS and increasing the values for padding-left and padding-right.

    answered Feb 17, 2010 at 0:19

    John's user avatar

    JohnJohn

    16k10 gold badges70 silver badges110 bronze badges

    Понравилась статья? Поделить с друзьями:

    Читайте также:

  • Как изменить ширину столбца если текст уже набран
  • Как изменить ширину столбца высоту строки разными способами
  • Как изменить ширину стежка на швейной машине
  • Как изменить ширину спины
  • Как изменить ширину символов

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии