empty-cells | htmlbook.ru

Internet ExplorerChromeOperaSafariFirefoxAndroidiOS
8.0+1.0+4.0+1.2+1.0+1.0+1.0+

Краткая информация

Значение по умолчаниюshow
НаследуетсяДа
ПрименяетсяК <td>, <th> или к элементам, у которых display: table-cell
Ссылка на спецификациюhttp://www.w3.org/TR/CSS21/tables.html#propdef-empty-cells

Версии CSS

CSS 1CSS 2CSS 2.1CSS 3

Описание

Задает отображение границ и фона в ячейке, если она пустая. При одновременном добавлении к таблице свойства border-collapse со значением collapse, свойство empty-cells игнорируется.

Ячейка считается пустой в следующих случаях:

  • нет вообще никаких символов;
  • в ячейке содержится только перевод строки, символ табуляции или пробел;
  • значение visibility установлено как hidden.

Добавление неразрывного пробела &nbsp; воспринимается как видимое содержание, т.е. ячейка уже будет непустой.

Синтаксис

empty-cells: show | hide

Значения

show
Отображает границу вокруг ячейки и фон в ней.
hide
Граница и фон в пустых ячейках не отображается. Если все ячейки в строке пустые, то строка прячется целиком.

Пример

HTML5CSS2.1IECrOpSaFx

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>empty-cells</title>
  <style>
   table {
    border: 4px double #399; /* Граница вокруг таблицы */
   }
   td {
    background: #fc0; /* Цвет фона */
    border: 1px solid #333; /* Граница вокруг ячеек */
    empty-cells: hide; /* Прячем пустые ячейки */
    padding: 5px; /* Поля в ячейках */ 
   }
  </style>
 </head>
 <body>
  <table>
   <tr>
    <td>Леонардо</td><td>5</td><td>8</td>
   </tr>
   <tr>
    <td>Рафаэль</td><td> </td><td>11</td>
   </tr>
   <tr>
    <td>Микеланджело</td><td>24</td><td></td>
   </tr>
   <tr>
    <td>Донателло</td><td>&nbsp;</td><td>13</td>
   </tr>
  </table>
 </body>
</html>

Результат данного примера в браузере Safari показан на рис. 1. Тот же пример в браузере Internet Explorer 7 продемонстрирован на рис. 2.

Рис. 1. Вид таблицы в браузере Safari

Рис. 2. Вид таблицы в браузере Internet Explorer 7

Браузеры

Internet Explorer до версии 7.0 включительно не поддерживает свойство empty-cells и отображает пустые ячейки всегда так, словно для них установлено empty-cells: hide.

Firefox версии 2 и ниже не прячет строку таблицы, если для всех ячеек задано empty-cells: hide и ячейки пусты.

Браузер Opera до версии 9.27 включительно не скрывает строку таблицы и для пустых ячеек отображает цвет фона.

Таблица

CSS по теме

  • empty-cells

Статьи по теме

  • Таблицы и стили

Рецепты CSS

Делим слипшийся текст на части

4557 10.11.2012 Скачать пример

Итак, имеем столбец с данными, которые надо разделить на несколько отдельных столбцов. Самые распространенные жизненные примеры:

  • ФИО в одном столбце (а надо — в трех отдельных, чтобы удобнее было сортировать и фильтровать) 
  • полное описание товара в одном столбце (а надо — отдельный столбец под фирму-изготовителя, отдельный — под модель для построения, например, сводной таблицы)
  • весь адрес в одном столбце (а надо — отдельно индекс, отдельно — город, отдельно — улица и дом)
  • и т.д.

Поехали..

Способ 1. Текст по столбцам

Выделите ячейки, которые будем делить и выберите в меню Данные — Текст по столбцам (Data — Text to columns). Появится окно Мастера разбора текстов:

На первом шаге Мастера выбираем формат нашего текста. Или это текст, в котором какой-либо символ отделяет друг от друга содержимое наших будущих отдельных столбцов (с разделителями) или в тексте с помощью пробелов имитируются столбцы одинаковой ширины (фиксированная ширина).

На втором шаге Мастера, если мы выбрали формат с разделителями (как в нашем примере) — необходимо указать какой именно символ является разделителем:

Если в тексте есть строки, где зачем-то подряд идут несколько разделителей (несколько пробелов, например), то флажок Считать последовательные разделители одним (Treat consecutive delimiters as one) заставит Excel воспринимать их как один.

Выпадающий список Ограничитель строк (Text Qualifier) нужен, чтобы текст заключенный в кавычки (например, название компании «Иванов, Манн и Фарбер») не делился по запятой

внутри названия.

И, наконец, на третьем шаге для каждого из получившихся столбцов, выделяя их предварительно в окне Мастера, необходимо выбрать формат:

  • общий — оставит данные как есть — подходит в большинстве случаев
  • дата — необходимо выбирать для столбцов с датами, причем формат даты (день-месяц-год, месяц-день-год и т. д.) уточняется в выпадающем списке
  • текстовый — этот формат нужен, по большому счету, не для столбцов с ФИО, названием города или компании, а для столбцов с числовыми данными, которые Excel обязательно должен воспринять как текст. Например, для столбца с номерами банковских счетов клиентов, где в противном случае произойдет округление до 15 знаков, т.к. Excel будет обрабатывать номер счета как число:

Кнопка Подробнее (Advanced) позволяет помочь Excel правильно распознать символы-разделители в тексте, если они отличаются от стандартных, заданных в региональных настройках.

Способ 2. Как выдернуть отдельные слова из текста


Если хочется, чтобы такое деление производилось автоматически без участия пользователя, то придется использовать небольшую функцию на VBA, вставленную в книгу. Для этого открываем редактор Visual Basic:

  • в Excel 2003 и старше — меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor)
  • в Excel 2007 и новее — вкладка Разработчик — Редактор Visual Basic (Developer — Visual Basic Editor) или сочетание клавиш Alt+F11

Вставляем новый модуль (меню Insert — Module) и копируем туда текст вот этой пользовательской функции:

Function Substring(Txt, Delimiter, n) As String
Dim x As Variant
    x = Split(Txt, Delimiter)
    If n > 0 And n - 1 <= UBound(x) Then
        Substring = x(n - 1)
    Else
        Substring = ""
    End If
End Function

Теперь можно найти ее в списке функций в категории Определенные пользователем (User Defined) и использовать со следующим синтаксисом:

=SUBSTRING(Txt; Delimeter; n)

где

  • Txt — адрес ячейки с текстом, который делим
  • Delimeter — символ-разделитель (пробел, запятая и т. д.)
  • n — порядковый номер извлекаемого фрагмента

Например:

Способ 3. Разделение слипшегося текста без пробелов

Тяжелый случай, но тоже бывает. Имеем текст совсем без пробелов, слипшийся в одну длинную фразу (например ФИО «ИвановИванИванович»), который надо разделить пробелами на отдельные слова. Здесь может помочь небольшая макрофункция, которая будет автоматически добавлять пробел перед заглавными буквами. Откройте редактор Visual Basic как в предыдущем способе, вставьте туда новый модуль и скопируйте в него код этой функции:

Function CutWords(Txt As Range) As String
    Dim Out$
    If Len(Txt) = 0 Then Exit Function
    Out = Mid(Txt, 1, 1)
    
    For i = 2 To Len(Txt)
        If Mid(Txt, i, 1) Like "[a-zа-я]" And Mid(Txt, i + 1, 1) Like "[A-ZА-Я]" Then
            Out = Out & Mid(Txt, i, 1) & " "
        Else
            Out = Out & Mid(Txt, i, 1)
        End If
    Next i
    CutWords = Out
End Function

Теперь можно использовать эту функцию на листе и привести слипшийся текст в нормальный вид:

 Ссылки по теме

  • Деление текста при помощи готовой функции надстройки PLEX
  • Что такое макросы, куда вставлять код макроса, как их использовать

 

    html — Как сделать ссылку из ячейки таблицы

    спросил

    Изменено 1 год, 11 месяцев назад

    Просмотрено 338 тысяч раз

    У меня есть следующее:

     
      какой-то текст
      
    раздел

    Я хочу сделать все . .. гиперссылка. Я бы предпочел без использования JavaScript. Это возможно?

    • html
    • css
    • гиперссылка
    1

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

    Как уже объяснялось, это семантически неверно. элемент является встроенным элементом и не должен использоваться в качестве элемента уровня блока. Тем не менее, вот пример (но JavaScript плюс CSS-стиль td:hover будет намного лучше), который работает в большинстве браузеров:

     
      
        <дел>
          Привет, мир
        

PS: на самом деле лучше изменить на в элементе блочного уровня с помощью CSS, как описано в другом решении в этой теме. хотя в IE6 он не будет хорошо работать, но это не новость 😉

Альтернативное (нерекомендуемое) решение

Если ваш мир — это только Internet Explorer (в настоящее время это редкость), вы можете нарушить стандарт HTML и написать это, оно будет работать, как и ожидалось, но будет крайне неодобрительно и будет считаться больным -советовал (от меня вы этого не слышали). Любой другой браузер, кроме IE, не будет отображать ссылку, но будет правильно отображать таблицу.

 <таблица>
    
        привет, мир
    

 
13

Используйте этот код. Он расширяет , чтобы заполнить ячейку по горизонтали. Для вертикального заполнения также используйте свойство height .

 тд а {
  ширина: 100%;
  дисплей: блок;
}

тд {
  /* Стили ячеек только для демонстрационных целей */
  граница: 1px сплошной черный;
  ширина: 10см;
} 
 <таблица>
  <тд>
    
      Привет, мир
    
  
 
2

Я бы рекомендовал использовать настоящий якорный элемент и установить его как блок.

 <дел>
    Ссылка