ОО как поведение в CSS: возможно ли наследование? - PullRequest
2 голосов
/ 22 января 2011

У меня есть простой стиль границы, скажем:

.border 
{
   /*content*/
}

Я хочу, чтобы несколько других классов наследовали этот стиль границы. Это можно сделать только в CSS? Или мне нужно указать это и в HTML?

Я хочу:

.actionArea : .border
{ 
     /*content */
}

Или это можно сделать только в HTML, например:

<div class="actionArea border"/>

Было бы очень неприятно, если бы последний был возможен.

Обновление
Это работает достаточно хорошо, но все же немного уродливо:

.actionArea, .otherArea, .anotherArea
{
    /*border specification */     
}

.actionArea
{
    /*area specification/*
}

.otherArea
{
    /*area specification/*
}

(..)

Ответы [ 2 ]

2 голосов
/ 22 января 2011

Вам понадобится CSS-фреймворк, такой как МЕНЬШЕ для такой вещи.

1 голос
/ 22 января 2011

Вы можете использовать sass .Вероятно, именно эту функцию вы хотите использовать http://sass -lang.com / # nesting

table.hl {
  margin: 2em 0;
  td.ln {
    text-align: right;
  }
}

li {
  font: {
    family: serif;
    weight: bold;
    size: 1.2em;
  }
}

Или, как сказал Одед, вы можете использовать МЕНЬШЕ .У LESS есть интересная особенность, одна из которых - mixins .Это не совсем наследование, но оно дает вам отношения has-css

Пример скопирован с LESS

.bordered {
  border-top: dotted 1px black;
  border-bottom: solid 2px black;
}

#menu a {
  color: #111;
  .bordered;
}
.post a {
  color: red;
  .bordered;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...