2013-02-13 2 views
0

У меня есть следующий:Как настроить ширину дочернего элемента без корректировки ширины родительского элемента в CSS?

<div class="parent"> 
    <div class="sizer" /> 
    <div class="child" /> 
</div> 

.sizer { 
width: 200px; 
} 

.child { 
position: relative; 
width: 400px; 
} 

Я не позволил точно установить ширину на родителе, и я не позволил установить ребенок position:absolute.

Использование CSS, есть ли другой способ установить ширину .child на 400 без ширины .parent от 200 до 400?

+0

Если вы не можете установить ширину на родителе, как она получит свою ширину, чтобы начать с? –

+0

Вы спрашиваете, может ли ширина ребенка превышать ширину родителя? – JSW189

+0

@ JSW189 - да, без установки ширины на родительском и без установки дочернего элемента в позицию: absolute – user1031947

ответ

2

Если родитель имеет ширину набора, он не будет расширяться с шириной дочернего элемента, даже если ширина дочернего элемента превышает ширину родителя. См. this JS Fiddle example.

.parent { 
    width: 300px; 
    height: 50px; 
} 

.child { 
    width: 400px; 
    height: 50px; 
    position: relative; 

} 

enter image description here


UPDATE

Я интересно, если есть какой-либо вид хака, что позволяет мне сделать это без установки ширины на родителя

Существует n o способ выполнить это без того, чтобы родитель имел какое-то свойство ширины или ширины. Если вы выступаете против использования свойства width родителя, вы можете использовать несколько альтернатив ширины.

Как пояснил cimmanon в комментарии ниже, вы можете установить .parent, чтобы иметь max-width. Это необязательно должно быть 100%; любая максимальная ширина будет делать, если она меньше ширины дочернего элемента. See this JS Fiddle example или проверить этот код:

.parent { 
    max-width: 200px; 
} 

.child { 
    width: 400px; 
} 

В качестве альтернативы можно использовать position:absolute и установить left и right свойства. See this JS Fiddle example или проверить этот код:

.parent { 
    position:absolute; 
    left:0; 
    right:0; 
} 

Но помните, что это только два из множества возможных альтернатив. Надеюсь это поможет!

+0

Мне интересно, есть ли какой-либо хак, который позволяет мне это делать, не устанавливая ширину на родительском – user1031947

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