Как я могу снова использовать цвет в таблице стилей?

У меня есть таблица стилей и много стилей с тем же цветом рамки (#CCCCCC быть точным).

Есть ли способ указать некоторую переменную и повторное использование что, таким образом, вместо ввода #CCCCCC много раз я могу ввести:

border: 1px solid $bordercolor;

P.S. Я использую ASP.NET MVC.

33
задан hopper 9 July 2013 в 21:15
поделиться

12 ответов

Не то, чтобы я в курсе, но вы можете сгенерировать свой CSS из страницы .NET.

Затем вызовите его с помощью

. StyleSheet.aspx будет выглядеть примерно так:

<%@ Page Language="C#" %> 
H1 
{ 
  background-color:<%= MyColourVariable %>; 
}

EDIT: Однако сегодня я бы предложил использовать LESS или SASS

10
ответ дан 27 November 2019 в 18:01
поделиться

Думаю, вы имеете в виду переменные CSS . К сожалению, они плохо поддерживаются.

4
ответ дан 27 November 2019 в 18:01
поделиться

Некоторые разработчики создали HttpHandler, которые добавляют поддержку переменных в CSS. По сути, HttpHandler заботится о замене переменных их значениями до того, как клиент увидит CSS. Примеры включают:

Это, безусловно, сработает. Я не пробовал это ни в одном из своих приложений, поэтому не могу говорить о последствиях для производительности.

2
ответ дан 27 November 2019 в 18:01
поделиться

Вы можете установить стиль границы для родительского тега. Например, если каждый элемент в вашем #content использует эти свойства границы, вы можете применить желаемый стиль границы к самому #content.

0
ответ дан 27 November 2019 в 18:01
поделиться

Расширение стиля внутри цвета определено

LE: см. Образец из KennyTM

0
ответ дан 27 November 2019 в 18:01
поделиться

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

.bordercolor { border-color:#CCCCCC; }

<div class="bordercolor otherstyle">
11
ответ дан 27 November 2019 в 18:01
поделиться
.classA, .classB, .classC {
   border-color: #CCC;
}

.classA {
   border-width: 1px;
   border-style: solid;
}

...

Но вы больше не можете использовать сокращенный синтаксис для определения границы.

24
ответ дан 27 November 2019 в 18:01
поделиться

Вы также можете использовать CSS «более высокого уровня». Sass и Less оба предлагают переменные. Они работают, написав на языке, который является надмножеством CSS, а затем вы компилируете его в CSS при тестировании / развертывании. Для RoR есть крючки для обоих, может быть один для asp.net.

8
ответ дан 27 November 2019 в 18:01
поделиться

Я тоже думал о шаблоне T4. Я думаю, это только Visual Studio, так что это не самый общий способ, но я подумал, что поделюсь им.

<#@ template inherits="Microsoft.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation" language="C#v3.5" debug="true" hostSpecific="true" #>
<#@ output extension=".css" #>
<# string font = " font-family: Verdana, Helvetica;\n\tfont-size: 11px;";#>

body { 
    <#= font #>
}
table.Bid {
    background-color:red;
    <#= font #>
}

Будет создан файл test.css с таким содержанием:

body { 
     font-family: Verdana, Helvetica;
    font-size: 11px;
}
table.Bid {
    background-color:red;
     font-family: Verdana, Helvetica;
    font-size: 11px;
}
1
ответ дан 27 November 2019 в 18:01
поделиться

На самом деле вы не можете определять переменные в CSS, но вы можете делать то, что вы после нескольких способов. Во-первых, вы можете применить несколько классов к своему элементу и просто сохранить цвет в своем собственном классе.

.myBorderColor { border-color: #000000; }
.myOtherClass { font-weight: bold; }

<div class="myBorderColor myOtherClass">content</div>

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

div.a { font-weight: bold; }
div.b { color: #cccccc; }

div.a div.b { border-color: #000000; }

Таким образом, вы по-прежнему контролируете свой цвет из одного места.

7
ответ дан 27 November 2019 в 18:01
поделиться

Вы можете использовать свой CSS как файл php с типом text / css. Тогда вы сможете использовать все нужные PHP-переменные. Это работает в любом браузере. Вот пример:

http://mailmarkup.org/mmlorg.php

3
ответ дан 27 November 2019 в 18:01
поделиться

Помимо генерации его со страницы .NET, вы можете использовать какой-то препроцессор. Существуют универсальные, такие как m4 , или специфические для CSS, такие как LESS .

1
ответ дан 27 November 2019 в 18:01
поделиться
Другие вопросы по тегам:

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