#html #css
#HTML #css
Вопрос:
Я изучаю CSS, и у меня возникли проблемы с расширением моего #wrapper DIV, чтобы он соответствовал его содержимому.
Я убедился, что все мои контейнеры имеют высоту 100%, min-height, похоже, ничего не делает, но я попробовал это также для #wrapper, html и body. Это как-то связано с относительным или абсолютным позиционированием? Ниже приведен пример того, над чем я работаю, буду признателен за любую помощь.
(Обновлено владельцем 4.21.11)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>CSS_Alpha_textArea</title>
<style type="text/css">
html {
height: 100%;
clear: both;
}
body {
margin: 0px;
padding: 0px;
font-family:Georgia, "Times New Roman", Times, serif;
color:#FFF;
font-size: 100%;
line-height: 1em;
background-color: #gray;
background-size: 100%;
height:100%;
clear: both;
}
#wrapper {
margin-right: auto;
margin-left: auto;
/*background-color: #FFF;*/
width: 75%;
height:100%;
position: relative;
clear: both;
}
.screen {
margin-right: auto;
margin-left: auto;
background-color: #3B6AA0;
width: 75%;
height:100%;
filter: alpha(opacity=20);
/* CSS3 standard*/
opacity:0.20;
z-index: -100;
position: absolute;
left: 12%;
right: 12%;
clear: both;
}
.overlay {
margin-right: auto;
margin-left: auto;
width: 75%;
height:100%;
z-index: 100;
position: absolute;
left: 12%;
right: 12%;
padding: 0px;
clear: both;
}
#textArea {
height: auto;
width: 75%;
margin-right: auto;
margin-left: auto;
color: #FFF;
}
</style>
</head>
<body>
<div id="wrapper">
<div class="screen"></div>
<div class="overlay">
<div id="textArea">
<p>textArea</p><br><p>textArea</p><br><p>textArea</p><br><p>textArea</p><br><p>textArea</p><br><p>textArea</p><br><p>textArea</p><br><p>textArea</p><br>
<p>textArea</p><br><p>textArea</p><br><p>textArea</p><br><p>textArea</p><br><p>textArea</p><br><p>textArea</p><br><p>textArea</p><br><p>textArea</p><br>
</div>
</div>
</div>
</body>
</html>
Комментарии:
1. Разместите свой код в вопросе, а не включайте ссылку, которую никто не может просмотреть.
2. Да, извините, я тестировал это, но это явно не работает.
3. отформатируйте свой код, выбрав его, а затем нажав на маленькую
{}
кнопку..4. Габи, спасибо за подсказку. Я отредактировал свой оригинальный пост, чтобы придать ему больше смысла, а затем отформатировал его в соответствии с вашим предложением. Теперь намного лучше.
Ответ №1:
Для контейнера div, как правило, лучше оставить свойство height (если вы не хотите ограничить его по определенной причине). Это позволит увеличивать высоту по мере необходимости.
Комментарии:
1. Я пробовал это, но в итоге это привело к нарушению работы класса .screen, должен ли я также отредактировать этот класс?
2. Я вижу. Возможно ли также получить фрагмент нашей HTML-разметки? Это может помочь.
3. Донни, я пытался загрузить свой html, но у меня возникли трудности из-за того, что я новичок… Вот ссылка на скриншот того, что я вижу, не идеальный, но более полезный, чем нет. -> i.imgur.com/Dd74i.jpg
4. Да, я действительно не могу многое сказать по экрану, но ваша проблема, скорее всего, связана с абсолютным расположением #wrapper и его дочерних элементов. Возможно, вам на самом деле не нужно использовать позиционирование в этом случае, но я не могу сказать этого наверняка, поскольку я летаю вслепую.
5. Донни, мне пришлось удалить список навигации и ссылки на изображения, но ниже приведена базовая структура страницы: Надеюсь, это поможет. <тело> <идентификатор div= «оболочка»> <класс div=»экран»></div> <класс div=»наложение»> <h1 align=»right» class=»largeH1″> <strong> Тест</strong></h1> <идентификатор div=»MainImage»> <идентификатор div=»mainNav»> <идентификатор ul=»nav»> </ul> </div> <img src=»» /> </div><br /> <идентификатор div=»textArea»> </div> </div> </div> </body>
Ответ №2:
свойство 100% означает, что оно должно поместиться в теле родительского файла.
проверьте это http://cssbeauty.com/skillshare/discussion/30/100-width-and-height /
Комментарии:
1. поскольку ширина вашего экрана составляет 75%, любой контент на нем, имеющий 100%, будет соответствовать 75% родительского экрана
2. Итак, я предположил, что если родительский объект имеет высоту 100%, то любые дочерние объекты также будут иметь высоту 100% независимо от ширины. Это неверное предположение?
3. это. Позвольте мне лучше объяснить: если родительский div имеет ширину: 75%, это означает, что он занимает 75% ширины его родительского элемента. Если дочерний div имеет ширину: 100%, его ширина будет равна 100% родительского, то есть такой же, как 75% родительского элемента родительского элемента
4. в основном, это зависит от того, где расположен ваш объект, каковы его родительские элементы и их размер
5. (это, если вы используете процент)
Ответ №3:
Ваша ссылка недоступна, но, похоже, если вы добавите ее overflow:hidden;
к своей #wrapper
, вы получите желаемый эффект.
Просто имейте в виду, что абсолютное позиционирование удаляет элемент из естественного потока документа, поэтому вам нужно учитывать, как содержимое каждого элемента может переполнять его контейнер.
Комментарии:
1. Я пробовал это, но, похоже, на самом деле это не расширяет div, а просто скрывает то, что переполняется…