За последние 24 часа нас посетили 16917 программистов и 1312 роботов. Сейчас ищут 1464 программиста ...

Импорт свойств одного класса в другой

Тема в разделе "HTML и CSS", создана пользователем Kreker, 12 мар 2008.

  1. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Есть 2 класса
    [css]
    .class1 {font-size: 10pt; color: #ffffff;}
    .class2 {width: 20pt; background-color: #cfcfcf;}
    [/css]

    Надо сделать так, чтобы эти оба класса применились к одному объекту, а результат был аналогичен такому
    <div class="class1 class2">1233</div>
    Но такую вещь провернуть тяжеловато - много менять страниц.

    Вот и хочется, чтобы в самом файлике css указать, что к class2 должны прибавиться свойства class1.

    Подскажите, пожалуйста!
     
  2. shreck

    shreck Активный пользователь

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    а такое вообще возможно?
     
  3. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Вот я и думаю. Просто у меня много классов и очень часто там повторяются атрибуты текста, без которых отображение неправильное.
    По мануалам пробежался - не увидел, вот и решил спросить.
     
  4. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    я обычно делаю так:
    [css].class1,
    .class2{
    font-size: ...
    }[/css]
     
  5. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Это немного не то. В твоем случае классам с разными названиями присваиваются одни и те же свойства.
    А мне необходимо, чтобы присвоились классу свойства другого.
     
  6. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Можно подключить JavaScript, например в jQuery:

    [js]$(function(){
    $('.class1').addClass('class2');
    }[/js]
    Хотя я наверно не понял сути вопроса, т.к. в первом случае увидел бы тоже самое.
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Извиняюсь, если не внятно объясняю. Попробую по-другому.

    Есть страницы с разными модулями, где в разных случаях употребляется много классов, но иногда у них попадаются одинаковые свойства, например - текстовые. Для примера допустим, что класса всего два и у них одинаковые свойства для текста.
    Для удобства редактирования и просмотра я хочу выделить одинаковые свойства и создать для них отдельный класс и его подключить к тем классам, в которых эти свойства были. Все это должно быть в css файле, поэтому javascript не пойдет.
    В принципе, можно и без этого, но если выделить одинаковые свойства в новый класс, то у остальных классов будет "меньше" свойств, следовательно - меньше каши.

    Сейчас так:
    [css]
    .class1 {font-size: 10pt; color: #ffffff; width: 20pt; background-color: #cfcfcf;}
    .class2 {font-size: 10pt; color: #ffffff; width: 40pt; background-color: #123456; cursor: default; display: block;}
    [/css]
    Хочу сделать так:
    [css]
    .mainfont {font-size: 10pt; color: #ffffff;}
    .class1 импорт .mainfont {width: 20pt; background-color: #cfcfcf;}
    .class2 импорт .mainfont {width: 40pt; background-color: #123456; cursor: default; display: block;}
    [/css]
     
  8. Anonymous

    Anonymous Guest

    HTML:
    1.     <head>
    2.         <style type="text/css">
    3.          .class1 { color: Red; }
    4.          .class2 { border: 1px solid blue; }
    5.         </style>
    6.         <script type="text/javascript">
    7.         function getElementsByClass(searchClass,node,tag)
    8.             {
    9.                 var classElements = new Array();
    10.                 if ( node == null )
    11.                     node = document;
    12.                 if ( tag == null )
    13.                     tag = '*';
    14.                 var els = node.getElementsByTagName(tag);
    15.                 var elsLen = els.length;
    16.                
    17.                 var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    18.                 for (i = 0, j = 0; i < elsLen; i++) {
    19.                     if ( pattern.test(els[i].className) ) {
    20.                         classElements[j] = els[i];
    21.                         j++;
    22.                     }
    23.                 }
    24.                 return classElements;
    25.             }
    26.         function update_style()
    27.             {
    28.                 var els = getElementsByClass('class1');
    29.                 for(i=0;i<els.length;i++){
    30.                     els[i].className += ' class2';
    31.                 }
    32.             }
    33.         </script>
    34.     </head>
    35.     <div class="class1">
    36.         text text text
    37.     </div>
    38.     <div class="class1">
    39.         text text text
    40.     </div>
    41.     <div class="class1">
    42.         text text text
    43.     </div>
    44.     <div class="class1">
    45.         text text text
    46.     </div>
    47.     <div class="class1">
    48.         text text text
    49.     </div>
    50.     <div class="class1">
    51.         text text text
    52.     </div>
    53.     <script type="text/javascript"> update_style(); </script>
    54. </body>
    55. </html>

    :))))))
     
  9. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    Идею понял. Мыслей нет, если в фоновом режиме появятся соображения отпишусь.
     
  10. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    ОФФ:
    [css]class .class1 extends .class2 {[/css]
    ^_^
     
  11. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Откуда такие вопросы берутся =)
    Это что нужно было нагородить в вёрстке, чтобы такие извращения могли понадобиться.
     
  12. topas

    topas Активный пользователь

    С нами с:
    16 авг 2006
    Сообщения:
    2.258
    Симпатии:
    36
    мне на работе верстка не лучше досталась :)
     
  13. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    [css].class1, .class2 {font-size: 10pt; color: #ffffff;}
    .class1 {width: 20pt; background-color: #cfcfcf;}
    .class2 {width: 40pt; background-color: #123456; cursor: default; display: block;}[/css]
     
  14. Anonymous

    Anonymous Guest

    Все равно, я суровей всех :)
     
  15. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    AlexGousev
    Для конкректно рассмотренного примера подходит. Но у меня больше классов. Ладно, так и сделаю.
    Спасибо всем!