2017-01-16 2 views
0

У меня есть отзывчивая страница с двумя разделами. Все элементы в правой части должны реагировать так что я использовал:height: auto отменяет все стили высоты

#rightSection * {max-width:100%;height:auto} 

однако любые дополнительные стили высоты игнорируются, как вы видите, в фрагменте кода.

Я не хочу использовать !important, потому что у меня есть много встроенных стилей с html-кодами, поэтому я предпочитаю не форсировать стили с помощью CSS. Есть ли другой способ установить высоты после height:auto?

#rightSection * {max-width:100%;height:auto} 
 

 

 
    .mydiv { 
 
    \t width:534px; 
 
    \t height:37px; 
 
    \t box-sizing:border-box; 
 
    }
<div id="rightSection"> 
 
    <div class="mydiv" style="background:#ff0000"></div> 
 
</div> 
 

 
That Red div is invisible because the height is igonred!

+2

Да, сделай свой '.mydiv' селектор более конкретный. Возможно, '#rightSection .mydiv'? – BenM

+0

Вот почему вы ** никогда не используете 'id'selectors в CSS **. Просто не делайте этого - у него есть ** нет ** преимуществ и ** много недостатков **. Помните: *** Никогда ***! – connexo

+2

Как только вы запомнили это, узнайте о специфике CSS. – connexo

ответ

2

В соответствии с вашим кодом все, что происходит в порядке CSS означает Cascading Style sheet, что означает, что последнее правило применяется и в зависимости от того, является более специфичным. Поэтому в вашем случае первое правило имеет более высокую спецификацию, чем второе правило, поэтому применяется height:auto.

См. Ссылку для получения более подробной информации о Specificity.

Итак, в коде вы можете сделать вторую роль morre specific различными способами, о которых вы узнаете из приведенной выше ссылки. Ниже приведен один такой пример.

#rightSection * {max-width:100%;height:auto} 
 

 

 
    #rightSection div { 
 
    \t width:534px; 
 
    \t height:37px; 
 
    \t box-sizing:border-box; 
 
    }
<div id="rightSection"> 
 
    <div class="mydiv" style="background:#ff0000"></div> 
 
</div> 
 

 
That Red div is invisible because the height is igonred!

Edit: Как отметил @connexo я хотел бы предложить не использовать Id селекторы refer this для получения более подробной информации о том, почему.

Вы можете использовать классы CSS вместо этого как классы помогают сделать ваш код более общим, например

.outerDiv * {max-width:100%;height:auto} 
 

 

 
    .outerDiv .mydiv{ 
 
    \t width:534px; 
 
    \t height:37px; 
 
    \t box-sizing:border-box; 
 
    }
<div class="outerDiv"> 
 
    <div class="mydiv" style="background:#ff0000"></div> 
 
</div> 
 

 
That Red div is visible now as the rule is more specific.

Надеется, что это помогает :)

+0

Это, решая сразу проблема, усугубляет ситуацию, советуя продолжать с использованием селекторов 'id' в CSS (которые вы должны делать абсолютно, только если вы точно знаете точно 110% *** почему *** вы используете' id'. И нет , «это на элементе» не является допустимым и понятным объяснением!). – connexo

+0

как я уже говорил, что это одно возможное решение. Может быть гораздо больше, что зависит от того, какой предпочитает владелец вопроса и макета html. – Manish

+0

Это технически работающее решение проблемы, вызванной болезнью, которую вы предлагаете сохранить в живых, используя свое лечение. ** Нет, это нехорошее решение в любом случае можно подумать. ** – connexo

1

#rightSection * {max-width:100%;height:auto} 
 

 

 
    #rightSection .mydiv { 
 
    \t width:534px; 
 
    \t height:37px; 
 
    \t box-sizing:border-box; 
 
    }
<div id="rightSection"> 
 
    <div class="mydiv" style="background:#ff0000"></div> 
 
</div> 
 

 
That Red div is invisible because the height is igonred!

+0

Это, при решении непосредственной проблемы, ухудшает ситуацию. – connexo

+0

@connexo, что вы имеете в виду? что делает его хуже? селектор, вот что это значит, не так ли? Или вы читали где-нибудь, используя ID, может быть, это плохая практика? но полезно при использовании в качестве якоря или .... можете ли вы объяснить свой комментарий :) –

+0

http://screwlewse.com/2010/07/dont-use-id-selectors-in-css/ – connexo