2010-02-22 42 views
8

http://www.stumbleupon.com/Làm thế nào để kéo dài một tiêu đề trên một nền trang web với CSS

http://www.mixx.com/

Cả hai trang web có một nền đầu trải dài trên trang trong khi nội dung tập trung và được bao gồm như nói 80% chiều rộng và điều đó cũng hoàn toàn phù hợp với phần còn lại của bố cục.

Tôi đặc biệt quan tâm đến hai trang web này, bởi vì tiêu đề có hai màu nền, không chỉ một màu.

Tôi chắc chắn có rất nhiều hướng dẫn trên web, nhưng tôi không phải là từ khóa để tìm kiếm.

Trả lời

6

Phân tích stumbleupon.com:

Các "tiêu đề" bao gồm thực sự của hai divs: wrapperHeaderwrapperNav. Cả hai đều có màu nền khác nhau. Những div này chỉ có một trẻ em có mỗi thuộc tính CSS

margin: 0 auto 

Kết quả này nằm ngang.

Thuộc tính này cũng được gán cho div nội dung, do đó tiêu đề, điều hướng và nội dung luôn được căn giữa. Tất nhiên điều này đòi hỏi phải thiết lập một số chiều rộng cho các yếu tố này.

Cấu trúc trông như thế này:

<div id="wrapperHeader"> 
    <div class="" id="header"> 
      <!-- mnore stuff here, like logo --> 
    </div> <!-- end header --> 
</div> 
<div id="wrapperNav"> 
    <ul id="navMain"> 
     <li class="discover first"><a href="/discover/toprated/">Discover</a></li> 
     <li class="favorites"><a href="/favorites/">Favorites</a></li> 
     <li class="stumblers"><a href="/stumblers/onlinenow/">Stumblers</a></li> 
    </ul> <!-- end navMain --> 
</div> 
<div id="wrapperContent"> 
    <div class="clearfix" id="content"> 
    </div> <!-- end content --> 
</div> 

Nếu bạn nhận được Firebug cho Firefox, bạn có thể dễ dàng phân tích các yếu tố chính mình.

+0

Đây là một câu trả lời tuyệt vời. Tuy nhiên, đây là một bản ghi nhớ có thể bắt được một số người - nó chắc chắn đã bắt được tôi! Một đồng nghiệp của tôi đang thực hiện một số sửa lỗi và cần thiết để tìm ra bố cục nào đang được sử dụng trên các phần khác nhau của ứng dụng web của chúng tôi. Cách đơn giản để tìm ra điều này là đặt chú thích ở đầu tệp mẫu ... trước khi khai báo DOCTYPE. Bạn đoán nó: trang web được hiển thị hoàn hảo trong Firefox và sự khác biệt đáng chú ý duy nhất trong IE là thanh trên cùng không hoàn toàn căng thẳng trên toàn trang. Việc sửa chữa là để đảm bảo không có gì trước DOCTYPE. – JamesG

7

nó là background-image thiết lập để body với tài sản background-repeat:

background-repeat: repeat-x; 

hơn: http://www.w3schools.com/css/pr_background-repeat.asp

Sửa: Đối với trung trang nội dung tôi làm theo cách này của bạn:

<body> 
<div id="wrapper"> 
    <!-- here is wrapper *everything* else --> 
</div> 
</body> 

rồi đặt width của trình bao bọc thành giá trị (chủ yếu là 960px). Sau đó, khi bạn đặt lề của nó là 0 auto, chính nó sẽ tự xoay xở.

#wrapper{ 
    margin: 0 auto; 
} 
1

Bạn có thể sử dụng độ rộng hình ảnh 1px với lặp lại nền được đặt theo chiều ngang.

background-image:url('paper.gif'); 
background-repeat:repeat-x; 

Sau đó căn chỉnh nội dung của bạn theo cách bạn muốn.

1

Đây chỉ là bố cục có chiều rộng cố định, nhưng với lề trái và phải tự động. Hiệu quả của việc này là căn giữa toàn bộ khối nội dung nếu kích thước trang rộng hơn chiều rộng nội dung.

nền chỉ được đặt làm hình ảnh lặp lại (lặp lại-x) để làm cho hình ảnh trông giống như phần tử menu thực sự mở rộng toàn bộ chiều rộng của trang.

0

Tôi nghĩ rằng bạn đang nói về/80% khác biệt chiều rộng 100% ....

Điều này sẽ giúp bạn bắt đầu:

<div id="header" style="width:100%; margin: 0px;"> 
    <!-- header content --> 
</div> 
<div id="content" style="display: block; width: 80%; margin: 0px auto"> 
    <!-- content --> 
</div> 

Các margin: auto về nội dung làm cho chặn ở giữa.

Liike Adam nói, thêm nền lặp lại để cung cấp cho nó yếu tố đồ họa dễ chịu.

4

Thêm hình ảnh nền có 2 nhược điểm:

  1. Mỗi khi bạn muốn thay đổi màu sắc của tiêu đề của bạn, bạn phải mở Photoshop của bạn và thay đổi màu sắc ở đó và sau đó thay đổi nó một lần nữa trong CSS của bạn.

  2. Bây giờ bạn muốn màu nền của tiêu đề trải dài trên trang nhưng bạn cũng nên làm gì nếu bạn muốn làm điều đó với chân trang?

Giải pháp đơn giản nhất là cái này:

(bạn không chỉ tạo ra một một cách dễ dàng để kéo dãn màu sắc trên trang, có thể sử dụng màu sắc khác nhau trong tất cả các nội dung header và footer, mà còn nó tiết kiệm cho mình từ vấn đề lợi nhuận tăng gấp đôi của IE (khi bạn sử dụng chiều rộng và lợi nhuận trong các yếu tố tương tự)

index.html:.

<html> 
    <body id="body"> 
    <div id="header"> 
     <div class="container"> 
      <!-- header's content here --> 
     </div><!-- .container --> 
    </div><!-- #header --> 
    <div id="content"> 
     <div class="container"> 
      <!-- main content here --> 
    <div id="footer"> 
     <div class="container"> 
      <!-- footer's content here --> 
     </div><!-- .container --> 
    </div><!-- #footer --> 
    </body> 
    </html> 
.210

style.css:

.container { 
    margin: 0 auto; 
    overflow: hidden; 
    padding: 0 15px; 
    width: 960px; 
} 

#header { 
    background: #EEE; 
} 

#content { 
    background-color: #F9F9F9; 
} 

#footer { 
    background-color: #333; 
    color: #BBB; 
    clear: both; 
} 

Trong ví dụ này, div.container tập trung các yếu tố và cũng mang lại cho họ một chiều rộng, và màu nền có thể kéo dài trên trang vì # header, #content#footer không có chiều rộng . Và trong tương lai, chỉ áp dụng lề và đệm cho số div bên trong .container và bạn sẽ tiết kiệm được nhiều vấn đề với IE trong tương lai.

+0

Câu trả lời tuyệt vời - rất đơn giản, ngắn gọn, v.v. +1 – nicorellius

0

Với CSS 2, bạn không thể kéo giãn hình nền. Không có thuộc tính nào để đặt thứ nguyên hình nền. Bạn chỉ có thể lặp lại nó trên X, Y hoặc cả hai trục.

CSS 3 sẽ cho phép kéo dài.

2

Tôi cầu xin sự khác biệt, có một cách dễ dàng để thực hiện việc này. Tương thích với cả Google Chrome và Firefox, IE không được kiểm tra.

Trong file CSS của bạn:

body{ 
    overflow-x:hidden; 
} 

div#headerbg{ 
    width:110%; 
    margin-left:-20px; 
    background-color:black; 
} 

và bây giờ chỉ đơn giản là sử dụng nó trong tập tin HTML của bạn. Bạn có thể thêm vị trí và những gì không phải là điều này.

+0

+1, chỉ muốn chỉ ra rằng nếu bất kỳ nội dung nào của bạn sẽ rộng hơn khung nhìn, việc thiếu cuộn ngang có thể trở thành một vấn đề. – ametren

0

Rất đơn giản mà không có cả đống hoopla.

Dán mã này vào giữa thùng chứa cơ thể - bạn có thể có bất kỳ thứ gì bạn muốn ở đó nữa nhưng trên trang của tôi như sau: (Tôi đã cố gắng quấn, không đi, chỉ cần sao chép và dán)

<body> 

<div id="bv_ImageMap1" style="margin:0;padding:0;position:absolute;left:0px; top:187px;width:100%;height:5px;text-align:left;z-index:0;"> <img src="files/IMG_2.jpg" id="ImageMap1" alt="" usemap="#ImageMapImageMap0" border="0" style="width:100%; height:5px;"> 

<map name="ImageMapImageMap0"> 
</map> 
</div> 

<div container> 

sau đó thay đổi các thông tin bạn cần cho đầu:. px height: _px img src = "yourfile/yourimg.jpg và QUAN TRỌNG đừng quên chiều cao tiếp theo: _ _px

Không có bất cứ điều gì khác cần thiết ở bất cứ nơi nào. Hãy thử nó

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