2013-10-30 24 views
14

Tôi sẽ bắt đầu bằng cách nói rằng tôi rất mới phát triển web nói chung và đây là trang web đáp ứng đầu tiên của tôi vì vậy hãy nhẹ nhàng và ghi nhớ điều này, tôi là định nghĩa của từ noob ở giai đoạn này . Đã tìm kiếm một câu trả lời trong một thời gian và không có may mắn Tôi hy vọng rằng ai đó ở đây có thể giúp tôi.Độ cao của trang đến 100% chế độ xem?

Tôi đang cố gắng tạo trang chủ cho trang web này. Thiết kế chỉ đơn giản là một khối xuống phía bên tay trái của trang hiển thị logo ở phía trên và sau đó là một loạt các liên kết bên dưới, tất cả đều nằm trên cùng một nền tảng. Ở bên phải của điều này là một hình ảnh lớn lấp đầy phần còn lại của màn hình. Tôi muốn toàn bộ trang để lấp đầy cửa sổ trình duyệt của bất kỳ thiết bị nào được xem trên vì vậy hoàn toàn không cần cuộn, tức là chiều rộng và chiều cao cả 100% của chế độ xem. Chiều rộng của trang cho tôi không đau buồn chút nào, thích nghi với các kích thước màn hình khác nhau như tôi muốn, với thanh bên ở 20% chiều rộng và hình ảnh chính ở 80%.

Tuy nhiên, chiều cao là một câu chuyện khác. Tôi có thể không có vẻ, trong bất kỳ sự kết hợp của CSS tôi đã cố gắng cho đến nay, để có thể có được chiều cao để hành xử ở 100% của khung nhìn. Hoặc thanh bên quá ngắn và hình ảnh chính quá dài hoặc cả hai ảnh quá dài, v.v. Hình ảnh chính tôi muốn giữ tỷ lệ cỡ ảnh và chỉ cần tràn nó theo yêu cầu để giữ phần lớn ảnh hiển thị và cạnh thanh Tôi chỉ muốn phù hợp với 100% chiều cao của trang. Đây là mã của tôi hiện tại:

<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> 

Bất kỳ trợ giúp nào về điều này sẽ thực sự được đánh giá cao và đừng ngần ngại chỉ ra bất kỳ sai lầm nghiệp dư ồ ạt nào. Tôi sẵn sàng chấp nhận mọi lời chỉ trích và học hỏi từ nó. Cảm ơn

+1

Điều đầu tiên tôi có thể đề xuất là xóa thẻ kiểu đó và chuyển css sang trang riêng của nó. Nếu bạn đang đi để mang lại các truy vấn phương tiện truyền thông và tất cả mọi thứ vào phương trình này thì bạn cần một trang css riêng biệt. –

Trả lời

18

Tôi đã thiết lập cho bạn thiết lập cơ bản để cho biết cách bạn tạo kiểu này. Cách tốt nhất mà tôi đã tìm thấy để thiết lập chiều cao là 100% là sử dụng jQuery/Javascript. Bạn có thể tìm thấy chiều cao của cửa sổ và sau đó nhập vào css với việc sử dụng nó.

Cách hoạt động này là var wH = $(window).height(); là tìm chiều cao và biến thành một số. Sau đó, khi bạn sử dụng $('.sideBar').css({height: wH});, bạn sẽ nhập chiều cao vào css của sideBar.

jQuery

function windowH() { 
    var wH = $(window).height(); 

    $('.sideBar, .mainImg').css({height: wH}); 
} 

windowH(); 

Chức năng này tôi đã viết được đưa ra hai yếu tố chiều cao của cửa sổ. Điều này sẽ cho phép hai yếu tố đó trở thành 100% của bất kỳ cửa sổ trình duyệt nào.

Tôi cũng khuyên bạn nên chuyển điều đó nav thành một ul mà tôi đưa vào fiddle để hiển thị cách có thể.

JSFIDDLE (Remove 'hiển thị' ở cuối url để xem code)

Điều tiếp theo bạn sẽ cần phải nghiên cứu là media queries để điều chỉnh nội dung để thích ứng tốt hơn với các thiết bị di động. Xem xét việc thay đổi thanh bên sang một điều hướng ngang khi trên thiết bị di động.

Nếu bạn muốn có một tinh khiết CSS chỉ cách tiếp cận sau đó bạn có thể làm một cái gì đó như thế này,

html, body { 
    height: 100%; 
    width: 100%; 
    margin: 0; 
    padding: 0; 
} 

Bằng cách thêm chiều cao & chiều rộng đến 100% trong bạn html/body sau đó bạn có thể sử dụng height: 100% trên các yếu tố khác để lấp đầy toàn bộ trang.

Tham khảo JSFIDDLE này để biết cách hoạt động.

Helpful read about responsive web design

+0

Điều này thật tuyệt vời và cảm ơn rất nhiều vì đã giúp Josh rất nhiều, chưa thử nó nhưng sẽ về sau và xem cách tôi tiếp tục. Một lướt qua nhanh các liên kết bạn cung cấp cho thấy chúng trông rất hữu ích cho tôi vì vậy cảm ơn cho điều đó quá. Tôi đã lên kế hoạch sử dụng truy vấn phương tiện với điểm dừng để chuyển sang bố cục cuộn theo chiều dọc ở kích cỡ máy tính bảng dọc và bên dưới, chỉ muốn khắc phục vấn đề này trước khi tôi nghiên cứu kỹ !! Rất cám ơn một lần nữa – Dan

+0

Không sao cả! Tôi chưa bao giờ thực hiện một bố cục như thế này nên tôi nghĩ nó có thể mang lại lợi ích cho cả hai chúng tôi. Bạn cũng có thể thiết lập các đỉnh cao như vậy: 'var wH = $ (window) .height()/2;' sẽ là 1/2 chiều cao, 'var wH = $ (window) .height()/4;' và đây sẽ là 1/4 chiều cao. Nếu câu trả lời này giúp bạn, đừng quên đánh dấu nó là câu trả lời đúng. Tốt nhất của may mắn trong thiết kế của bạn và cảm thấy tự do để hỏi tôi bất kỳ câu hỏi! –

+0

Nó hoạt động rất tốt. Trả lời được đánh dấu :) – Dan

35

Dưới đây chỉ là một ví dụ mã đơn giản của HTML:

<div id="welcome"> 
    your content on screen 1 
</div> 
<div id="projects"> 
    your content on screen 2 
</div> 

và đây là CSS sử dụng vh:

div#welcome { 
    height: 100vh; 
    background: black; 
} 

div#projects { 
    height: 100vh; 
    background: yellow; 
} 

From Here: http://stanhub.com/how-to-make-div-element-100-height-of-browser-window-using-css-only/

Nó hoạt động cho tôi.

+0

Đây là câu trả lời hay nhất và đơn giản nhất !! – emi

Các vấn đề liên quan