Есть ли способ сослаться на существующий стиль CSS из другого стиля CSS, используя CSS или javascript?

(?Pregex) - Круглые скобки группируют регулярное выражение между ними. Они фиксируют текст, сопоставляемый регулярным выражением внутри них, на которое может ссылаться имя между острой скобкой. Имя может состоять из букв и цифр.

Скопировать пасту из: http://www.regular-expressions.info/refext.html

16
задан Jason Plank 1 November 2011 в 15:20
поделиться

5 ответов

Нет никакого способа сделать это с CSS - это - часто требуемая функция, но не включенное в спецификацию все же. Вы также не можете сделать этого непосредственно с JS, но существует вид hacky обходного решения:

$('.style2').addClass ('style1');
13
ответ дан John Millikin 1 November 2011 в 15:20
поделиться

можно достигнуть той же функциональности, позволив элементам наследовать несколько стилей.напр.

<p class="style1 style2">stuff</p>

и затем Ваш css включал бы, например:

.style1 {width:140px;}
.style2 {height:140px;}

редактирование: на самом деле ответ robert мог бы лучше приблизить метод, которого Вы пытаетесь достигнуть

.style1, .style2 {width: 140px;}
.style2 {height: 140px;}

<p class="style2">i will have both width and height applied</p>
7
ответ дан Owen 1 November 2011 в 15:20
поделиться

Один способ использовать тот же код для нескольких блоков следующий:

 .style1, .style2 { width: 140px; }
5
ответ дан Robert Elwell 1 November 2011 в 15:20
поделиться

Некоторые опции:

  1. Генерируют Ваш CSS динамично, или на лету или поскольку Вы создаете свои таблицы стилей (я использую макросы Visual Studio, чтобы реализовать константы для шрифтов, чисел и цветов - и вычислить легкие/темные оттенки цветов). Эта тема была очень обсуждена в другом месте на этом сайте.

  2. , Если у Вас есть много стилей, которые 140 пкс шириной и Вы хотите иметь гибкость изменения того размера для всех тех стилей, Вы могли сделать это:

    div.FixedWidth {width:140px;}
    div.Style1 {whatever}
    div.Style2 {whatever}
    

и

    <div class="Style1 FixedWidth">...</div>
    <div class="Style2 FixedWidth">...</div>
1
ответ дан Herb Caudill 1 November 2011 в 15:20
поделиться

Вы говорите о том, чтобы получить все вычисленные стили, установленные для определенного Элемента, и применить их ко второму Элементу?

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

Что-то вроде:

el = document.getElementById('someId');
var cStyle = '';
for(var i in el.style){
  if(el.style[i].length > 0){ cStyle += i + ':' + el.style[i] + ';';
}
$('.someClass').each(function(){ this.style.cssText = cStyle; });

Если вы знаете, что будете иметь дело только с конечным набором CSS properties, вы можете упростить приведенное выше следующим образом:

el = $('#someId');
var styleProps = {'border-top':true,'width':true,'height':true};
var cStyle = '';
for(var i in styleProps){
  cStyle += styleProps[i] + ':' + el.style(styleProps[i]) + ';';
}
$('.someClass').each(function(){ this.style.cssText = cStyle; });

Я оговорюсь в приведенном выше коде тем фактом, что я не уверен, будут ли IE возвращать объект CSSStyleDeclaration для свойства стиля HTMLElement, например Mozilla (первый пример ). Я также не проводил вышеупомянутый тест, поэтому полагайтесь на него только как на псевдокод.

1
ответ дан 30 November 2019 в 12:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: