2013-05-09 2 views
11

Учитывая любой элемент HTML, являющийся дочерним элементом другого элемента, и автоматически наследует серию атрибутов CSS: как вы можете установить один (или все) из этих атрибутов значение по умолчанию?Как установить атрибуты CSS для значений по умолчанию для определенного элемента (или предотвратить наследование)

Пример:

CSS:

.navigation input { 
    padding: 0; 
    margin: 0 30em; 
} 

HTML

<div class="navigation"> 
    Some text: <input type="text" name="one" /> 
    More text: <input type="text" name="two" /> 
    <!-- The next input, I want it to be as browser-default --> 
    <div class="child"> 
     <input type="text" name="three"> 
    </div> 
</div> 

Здесь, браузером по умолчанию Я имею в виду, я хочу, чтобы это выглядело так, как будто нет CSS вообще не было применяется к этому элементу.

Здесь я использую элемент input в качестве примера, но я говорю о любом элементе. Я не спрашиваю, как установить различные атрибуты CSS для этого конкретного элемента, я спрашиваю, как сбрасывает его значениям по умолчанию.

Различные элементы имеют разные атрибуты по умолчанию, такие как padding, когда они не установлены. Например, button, который имеет прописку 0 в CSS, обернет текст без какого-либо пробела. Вы можете позже установить его дополнение к другому значению, но как бы вы установили его на заполнение по умолчанию?

Заранее благодарим за любые комментарии!

+0

Возможный дубликат [Сбросить свойство отображения CSS до значения по умолчанию] (http://stackoverflow.com/questions/8228980/reset-css-display-property-to-default-value) – user123444555621

ответ

2

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

Несколько примеров

Meyer Web

HTML5 Doctor (CSS Reset С HTML5 элементов в комплекте)

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

div { 
    color: red; 
    font-family: Arial; 
} 

div p { 
    /* Here it will inherit the parents child unless and 
     until you re specify properties with different values */ 
} 
+0

Спасибо. Значит, вы говорите, что это невозможно? Использование таблиц стилей со значениями по умолчанию не переустанавливает элемент, перенаправляет атрибуты и каким-то образом имитирует значения по умолчанию для браузера, но не как истинный 'reset'. Или я чего-то не хватает? –

+0

@FranciscoZarabozo Скажем, вы сбросили настройки браузера по умолчанию, теперь для одного элемента вам нужен браузер по умолчанию, поэтому вам нужно создать селектор и снова написать стили для более наследования наследования, поэтому на чистом английском языке что-то вроде '.class_name {all properties = 0, теперь ниже rewrite new} 'невозможно –

+0

" CSS styles stylesets "do * not * свойства для значений по умолчанию в целом. Они просто задают им некоторые значения, которые решил автор таблицы стилей. Значения по умолчанию зависят от браузера, хотя в браузерах много общего. –

1

Вы не можете t установить атрибут значения по умолчанию, поскольку значения по умолчанию зависят от браузера и не могут быть указаны в CSS. Ср в How to set CSS attributes to default values for a specific element (or prevent inheritance)

С другой стороны, ваш пример устанавливает padding и margin, которые являются не по наследству. Таким образом, кажется, вопрос заключается в том, как запретить использование собственного правила CSS для определенного элемента. Тогда ответ заключается в том, что вам нужно изменить селектор правила, чтобы конкретный элемент не соответствовал ему. В вашем случае, это может быть сделано путем изменения селектора

.navigation > input 

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

+0

Ну, я работаю с документом (не моим, но назначенным мне), который имеет * * {margin: 0; padding: 0} 'как первая строка в CSS, и это влияет на ввод и кнопки, которые являются первым, что я хотел бы сбросить. –

6

в вашем случае вы можете использовать это:

.navigation input {  
    all: initial; 
} 

он вернет все атрибуты объявления вашего вклада в начальное значение.

источник: http://www.w3schools.com/cssref/css3_pr_all.asp

+0

Будьте осторожны с этим - он не дает вам таблицу стилей пользовательского агента браузера (стиль * по умолчанию), который запрашивал OP). Он дает вам [начальное значение] (https://developer.mozilla.org/en-US/docs/Web/CSS/initial_value) - это, по-видимому, не так однозначно для меня. – thomas88wp

+0

есть небольшая разница, если атрибут унаследован или нет. Он должен работать в большинстве случаев, этот документ также полезен: https://developer.mozilla.org/en-US/docs/Web/CSS/initial – Requiem13

-1

Вы можете использовать незаданы, говорят, что вы хотите, чтобы установить цвет границы для браузера по умолчанию

.navigation input { 
    padding: 0; 
    margin: 0 30em; 
    border-color: unset; 
} 

это сбросить стиль, унаследованный от других классов.

Смежные вопросы