CSS & Overriding Styles на вложенных элементах

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

Он по-прежнему удаляет десятичную дробь, поэтому конечный ноль не теряется в LEN ().

  1. Каким бы ни было число цифр в новом номере, оно заменяет это число цифр исходного числа нулями.
  2. Добавляет новый номер к измененному номеру.
  3. Он делится на 100, чтобы вернуть десятичную дробь.

enter image description here

Я не сомневаюсь, что есть гораздо более элегантный способ сделать это.

Спасибо!

9
задан Community 23 May 2017 в 12:00
поделиться

4 ответа

Если у вас есть такой HTML-код:


<html>
  ...
  <body>
    <div>
      <div>
      <div>
    <div>
  </body>
</html>

Вы можете применять стили только к div это дочерний элемент элемента body , использующий селектор дочерних элементов (> ) примерно так:

body > div
{
  border:solid 1px orange;
}

Вложенный элемент div не получит границы.

Для получения дополнительной информации, пожалуйста, посетите: http://www.w3.org/TR/CSS2/selector.html#child-selectors .

Обратите внимание, что Internet Explorer 6 не поддерживает дочерний селектор .

12
ответ дан 4 December 2019 в 13:05
поделиться

Да. Правило «таблица таблиц» переопределит правило «таблица», потому что оно более конкретно . То, что вы описали, - лучший способ иметь один стиль для самой внешней таблицы и другой стиль для внутренних таблиц - при условии, что ни одна таблица не имеет класса или идентификатора, которые позволили бы вам использовать больше семантических селекторов.

На практике вы более вероятно, что потребуется использовать эту технику со списками.

ol { list-style: upper-roman }
ol ol { list-style: upper-alpha }
ol ol ol { list-style: lower-roman }
ol ol ol ol { list-style: lower-alpha }
3
ответ дан 4 December 2019 в 13:05
поделиться

Добавьте класс или идентификатор во внешнюю таблицу:

<style type="text/css"> 
.outer {border: dashed 1px #333333;} 
</style> 
</head> 
<body> 
  <table class="outer"> 
  <tr><td>before inner table. 
    <table> 
    <tr> 
    <td>Inside inner table.</td> 
    </tr> 
    </table> 
    After inner table. 
    </td> 
  </tr> 
  </table>     
</body> 

Смотрите его здесь

Если вы невозможно добавить идентификаторы или классы в HTML, и если предположить, что таблица, которую вы хотите стилизовать, находится за пределами другой таблицы, вы можете стилизовать ее, указав, какой элемент является потомком:

div > table {border: dashed 1px #333333;}

Смотрите его здесь

Хотя этот селектор был реализован только в IE7, поэтому, если вам нужно поддерживать IE6, вам придется использовать метод переопределения из вопроса.

1
ответ дан 4 December 2019 в 13:05
поделиться

Я согласен с вашей первоначальной идеей об этом, однако, это зависит от обстоятельств.

Всегда создавайте базовое правило и добавляйте в таблицу стилей исключения из этого правила.

Например, если вы уверены, что таблица в таблице будет определенно никогда не нужно применять к нему тот же стиль, а затем использовать селектор «таблица таблиц», чтобы установить стиль. Однако, если это может произойти только один раз, установите класс в родительской таблице и измените ваш селектор «таблица таблиц» так, чтобы он соответствовал строкам «table.parent table».

Однако «родитель» должен быть заменен на описательное имя для элемента, например, календарь, как и есть.

0
ответ дан 4 December 2019 в 13:05
поделиться