Высота страницы до 100% экрана просмотра?
Начну с того, что я очень новичок в веб-разработке в целом и что это мой самый первый отзывчивый сайт, поэтому, пожалуйста, будьте нежны и помните об этом, я - определение слова noob на этом сцена. Некоторое время искал ответ и не повезло, я надеюсь, что кто-то здесь может помочь мне.
Я пытаюсь создать домашнюю страницу для этого веб-сайта. Дизайн - это просто блок вниз по левой стороне страницы с логотипом вверху, а затем рядом ссылок внизу, все из которых находятся на одном и том же фоне. Справа от этого - одно большое изображение, которое заполняет остальную часть экрана. Я хочу, чтобы вся страница заполнила окно браузера любого устройства, которое просматривается, поэтому абсолютно не требуется прокрутка, т.е. Ширина и высота как 100% окна просмотра. Ширина страницы не дает мне никакой печали, сладко приспосабливаясь к разным размерам экрана, как я этого хочу, с боковой панелью на 20% от ширины и основным изображением на 80%.
Однако высота - это совсем другая история. Я не могу показаться, в любой комбинации CSS, которую я пробовал до сих пор, чтобы иметь возможность вести высоту до 100% окна просмотра. Либо боковая панель слишком короткая, либо основное изображение слишком длинное, либо слишком длинное и т.д. И т.д. Основное изображение, которое я хочу сохранить пропорции, и просто переполняю его div, как требуется, чтобы сохранить большую часть отображаемого изображения, а сторона bar Я просто хочу соответствовать 100% высоты страницы. Вот мой код в настоящее время:
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
html
{
height: 100%;
margin: 0;
padding: 0;
}
body
{
height: 100%;
margin: 0;
padding: 0;
}
#page
{
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
#sidebar
{
float: left;
width: 20%;
height: 100%;
padding-bottom: 10;
margin: 0;
background: url(/Images/bg.jpg);
}
#slideshow
{
float: right;
width: 80%;
height: 100%;
overflow: hidden;
margin: 0;
padding: 0;
}
#logoimg
{
width: 80%;
margin-top: 10%;
margin-left: 10%;
margin-right: 10%;
}
#mainimg
{
width: 100%;
overflow: hidden;
}
.link
{
font-family: courier;
font-size: 1.3em;
text-align: center;
padding-top: 7%;
padding-bottom: 1%;
color: rgba(255,255,255,1.00);
}
@font-face
{
font-family: courier;
src: url(/courier_new-webfont.ttf);
src: url(/courier_new-webfont.eot);
src: url(/courier_new-webfont.woff);
}
</style>
</head>
<body>
<div id="page"><!--Whole page container-->
<div id="sidebar"><!--Side bar container-->
<div class="link" id="logo"><img id="logoimg" src="/Images/logo.png"></div>
<div class="link" id="homelink">Home<!--Home link--></div>
<div class="link" id="aboutlink">About<!--About link--></div>
<div class="link" id="gallerylink">Gallery<!--Gallery link--></div>
<div class="link" id="priceslink">Prices<!--Prices link--></div>
<div class="link" id="reviewslink">Reviews<!--Reviews link--></div>
<div class="link" id="contactlink">Contact<!--Contact link--></div>
<div class="link" id="clientslink">Clients<!--Clients link--></div>
</div>
<div id="slideshow"><img id="mainimg" src="/Images/main.jpg"><!--Image slideshow container-->
</div>
</div>
</body>
</html>
Любая помощь с этим будет действительно оценена и не стесняйтесь указывать на массовые ошибки, связанные с любителями. Я готов критиковать и учиться на этом. Благодаря
Ответы
Ответ 1
Я сделал вам базовую настройку, чтобы показать, как вы это сделаете. Лучший способ, которым я нашел установить высоту до 100%, - это использование jQuery/Javascript. Вы можете найти высоту окна, а затем ввести его в css с его использованием.
Как это работает, var wH = $(window).height();
находит высоту и превращает ее в число. Затем, когда вы используете $('.sideBar').css({height: wH});
, вы вводите высоту в css sideBar.
JQuery
function windowH() {
var wH = $(window).height();
$('.sideBar, .mainImg').css({height: wH});
}
windowH();
Эта функция, которую я написал, дает этим двум элементам высоту окна. Это позволит этим двум элементам быть на 100% от любого окна браузера.
Я также рекомендую превратить этот nav
в ul
, который я включил в скрипт, чтобы показать, как это возможно.
JSFIDDLE (удалите 'show' в конце url, чтобы увидеть код)
Следующее, что вам нужно исследовать, - это media queries
, чтобы настроить контент для лучшей адаптации к мобильным устройствам. Рассмотрите возможность изменения sideBar на горизонтальную навигацию, когда на мобильных устройствах.
Если вы хотите использовать только метод CSS
, тогда вы можете сделать что-то вроде этого,
html, body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
Добавив height & width к 100% в html
/body
, вы можете использовать height: 100%
для других элементов для заполнения всей страницы.
Обратитесь к этому JSFIDDLE, чтобы узнать, как это работает.
Полезно прочитать о адаптивном веб-дизайне
Ответ 2
Вот просто упрощенный пример кода HTML:
<div id="welcome">
your content on screen 1
</div>
<div id="projects">
your content on screen 2
</div>
и использует CSS с помощью vh:
div#welcome {
height: 100vh;
background: black;
}
div#projects {
height: 100vh;
background: yellow;
}
Отсюда: http://stanhub.com/how-to-make-div-element-100-height-of-browser-window-using-css-only/
Это работает для меня.
Ответ 3
В Chrome достаточно просто добавить display: flex
в body
.
В Firefox вы должны добавить height: 100vh
, чтобы получить желаемый результат. А margin: 0
избавится от надоедливых полос прокрутки.
<body style="display:flex; height: 100vh; margin: 0;">
<div style="background-color: red; flex:1;"></div>
<div style="background-color: green; flex:2;"></div>
<div style="background-color: blue; flex:1;"></div>
</body>
Ответ 4
Пример кода для точного покрытия высоты страницы.
HTML
<div class="container">
<div class="header">
<h1>Header</h1>
</div>
<div class="content">
Main content
</div>
</div>
CSS
html, body {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
.container {
max-width: 1020px;
margin: auto;
height: 100%;
background: #ddd;
padding:16px;
box-sizing:border-box
}
.header,.content{
background:#fff;
padding:16px
}
.content{
margin-top:16px;
min-height:calc(100% - 160px);
}
Пример ссылки:https://codepen.io/rahdirs/pen/jeRVod