Hướng dẫn css background image full screen - ảnh nền css toàn màn hình

Tìm hiểu cách tạo một hình nền trang đầy đủ với CSS.

Hình ảnh toàn trang

Tìm hiểu cách tạo một hình ảnh nền bao gồm toàn bộ cửa sổ trình duyệt. Ví dụ sau đây cho thấy hình ảnh nền đáp ứng toàn màn hình [và nửa màn hình]:

Demo - Hình nền toàn trang

Demo - Hình ảnh nền nửa trang

Cách tạo hình ảnh chiều cao đầy đủ

Sử dụng một phần tử container và thêm hình ảnh nền vào thùng chứa với

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
3. Mẹo: Sử dụng 50% để tạo hình nền nửa trang. Sau đó sử dụng các thuộc tính nền sau để trung tâm và mở rộng hình ảnh một cách hoàn hảo:Tip: Use 50% to create a half page background image. Then use the following background properties to center and scale the image perfectly:

Lưu ý: Để đảm bảo rằng hình ảnh bao gồm toàn bộ màn hình, bạn cũng phải áp dụng

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
3 cho cả hai và: To make sure that the image covers the whole screen, you must also apply
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
3 to both and :

Thí dụ

cơ thể, html {& nbsp; & nbsp; chiều cao: 100%;}
  height: 100%;
}

.bg {& nbsp; / * Hình ảnh được sử dụng */& nbsp; Hình ảnh nền: URL ["img_girl.jpg"];
  /* The image used */
  background-image: url["img_girl.jpg"];

& nbsp; / * Chiều cao đầy đủ */& nbsp; Chiều cao: 100%;
  height: 100%;

& nbsp; / * Trung tâm và mở rộng hình ảnh đẹp */& nbsp; Định vị nền: Trung tâm;
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
}

Hãy tự mình thử »

Hình nền nửa trang:



Làm thế nào để tôi đặt một hình ảnh làm toàn bộ nền trong HTML?

Bài đăng này ban đầu được xuất bản vào ngày 21 tháng 8 năm 2009 và hiện được cập nhật vì nó đã được sửa đổi hoàn toàn. Cả hai phương pháp ban đầu đều được loại bỏ và bây giờ được thay thế bằng bốn phương pháp mới.

Mục tiêu ở đây là một hình ảnh nền trên một trang web bao gồm toàn bộ cửa sổ trình duyệt mọi lúc. Hãy để một số chi tiết cụ thể trên đó:

  • Lấp đầy toàn bộ trang với hình ảnh, không có khoảng trắng
  • Hình ảnh tỷ lệ khi cần thiết
  • Giữ lại tỷ lệ hình ảnh [tỷ lệ khung hình]
  • Hình ảnh tập trung trên trang
  • Không gây ra cuộn giấy
  • Trình duyệt chéo tương thích càng tốt
  • Là một số shenanigans lạ mắt như flash

Tuyệt vời, dễ dàng, CSS tiến bộ

Chúng ta có thể làm điều này hoàn toàn thông qua CSS nhờ vào tài sản

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
5 hiện tại CSS. Chúng tôi sẽ sử dụng phần tử
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
6 [tốt hơn
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
7 vì nó luôn luôn luôn có chiều cao của cửa sổ trình duyệt]. Chúng tôi đặt một nền cố định và tập trung vào nó, sau đó điều chỉnh kích thước của nó bằng cách sử dụng
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
5 được đặt thành từ khóa bìa.

html { 
  background: url[images/bg.jpg] no-repeat center center fixed; 
  -webkit-background-size: cover;
  -moz-background-size: cover;
  -o-background-size: cover;
  background-size: cover;
}

Hoạt động trong:

  • Safari 3+
  • Chrome bất cứ điều gì+
  • Tức là 9+
  • Opera 10+ [Opera 9.5 được hỗ trợ kích thước nền nhưng không phải là từ khóa]
  • Firefox 3.6+ [Firefox 4 hỗ trợ phiên bản có tiền tố không phải là nhà cung cấp]

CẬP NHẬT: Cảm ơn Goltzman trong các bình luận đã chỉ ra một bài viết kết nối của nhà phát triển Adobe có một số mã để làm cho IE làm nền tảng cũng như: Thanks to Goltzman in the comments for pointing out an Adobe Developer Connection article which features some code to make IE do cover backgrounds as well:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";

Nhưng cẩn thận, người đọc Pierre Orsander cho biết họ đã thử điều này và có một số vấn đề với các liên kết trên trang sẽ chết.

CẬP NHẬT: Matt Literland viết để nói rằng bất kỳ ai cố gắng sử dụng các bộ lọc IE ở trên và gặp sự cố với Scrollbars hoặc liên kết chết hoặc bất cứ điều gì khác [như Pierre ở trên] nên thử không sử dụng chúng trên phần tử

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
6 hoặc
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
7. Nhưng thay vào đó là một vị trí cố định div với chiều rộng và chiều cao 100%.
Matt Litherland writes in to say that anyone trying to use the above IE filters and having problems with scrollbars or dead links or whatever else [like Pierre above] should try not using them on the
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
6 or
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
7 element. But instead a fixed position div with 100% width and height.

Kỹ thuật chỉ CSS #1

Cảm ơn rất nhiều, như thường lệ, đến Doug Neiner cho phiên bản thay thế này. Ở đây, chúng tôi sử dụng một yếu tố nội tuyến, sẽ có thể thay đổi kích thước trong bất kỳ trình duyệt nào. Chúng tôi đặt một

img.bg {
  /* Set rules to fill background */
  min-height: 100%;
  min-width: 1024px;
	
  /* Set up proportionate scaling */
  width: 100%;
  height: auto;
	
  /* Set up positioning */
  position: fixed;
  top: 0;
  left: 0;
}

@media screen and [max-width: 1024px] { /* Specific to this particular image */
  img.bg {
    left: 50%;
    margin-left: -512px;   /* 50% */
  }
}
1 giữ cho nó lấp đầy cửa sổ trình duyệt theo chiều dọc và đặt 100%
img.bg {
  /* Set rules to fill background */
  min-height: 100%;
  min-width: 1024px;
	
  /* Set up proportionate scaling */
  width: 100%;
  height: auto;
	
  /* Set up positioning */
  position: fixed;
  top: 0;
  left: 0;
}

@media screen and [max-width: 1024px] { /* Specific to this particular image */
  img.bg {
    left: 50%;
    margin-left: -512px;   /* 50% */
  }
}
2 giữ nó lấp đầy theo chiều ngang. Chúng tôi cũng đặt một
img.bg {
  /* Set rules to fill background */
  min-height: 100%;
  min-width: 1024px;
	
  /* Set up proportionate scaling */
  width: 100%;
  height: auto;
	
  /* Set up positioning */
  position: fixed;
  top: 0;
  left: 0;
}

@media screen and [max-width: 1024px] { /* Specific to this particular image */
  img.bg {
    left: 50%;
    margin-left: -512px;   /* 50% */
  }
}
3 về chiều rộng của hình ảnh để hình ảnh không bao giờ nhỏ hơn thực tế.

Bit đặc biệt thông minh là sử dụng truy vấn phương tiện để kiểm tra xem cửa sổ trình duyệt có nhỏ hơn hình ảnh không và sử dụng phần trăm kết hợp-bên trái và âm trái

img.bg {
  /* Set rules to fill background */
  min-height: 100%;
  min-width: 1024px;
	
  /* Set up proportionate scaling */
  width: 100%;
  height: auto;
	
  /* Set up positioning */
  position: fixed;
  top: 0;
  left: 0;
}

@media screen and [max-width: 1024px] { /* Specific to this particular image */
  img.bg {
    left: 50%;
    margin-left: -512px;   /* 50% */
  }
}
4 để giữ cho nó ở giữa bất kể.

Đây là CSS:

img.bg {
  /* Set rules to fill background */
  min-height: 100%;
  min-width: 1024px;
	
  /* Set up proportionate scaling */
  width: 100%;
  height: auto;
	
  /* Set up positioning */
  position: fixed;
  top: 0;
  left: 0;
}

@media screen and [max-width: 1024px] { /* Specific to this particular image */
  img.bg {
    left: 50%;
    margin-left: -512px;   /* 50% */
  }
}

Hoạt động trong:

  • Bất kỳ phiên bản trình duyệt tốt nào: Safari / Chrome / Opera / Firefox
  • Tức là 6: borked - nhưng có thể có thể sửa được nếu bạn sử dụng một số loại shim định vị cố định
  • Tức là 7/8: chủ yếu là hoạt động, trung tâm không có kích thước nhỏ nhưng lấp đầy màn hình tốt
  • Tức là 9: hoạt động

Xem bản demo

Kỹ thuật chỉ CSS #2

Một cách khá đơn giản để xử lý điều này là đặt một hình ảnh nội tuyến trên trang, cố định vị trí nó ở phía trên bên trái và cho nó một

img.bg {
  /* Set rules to fill background */
  min-height: 100%;
  min-width: 1024px;
	
  /* Set up proportionate scaling */
  width: 100%;
  height: auto;
	
  /* Set up positioning */
  position: fixed;
  top: 0;
  left: 0;
}

@media screen and [max-width: 1024px] { /* Specific to this particular image */
  img.bg {
    left: 50%;
    margin-left: -512px;   /* 50% */
  }
}
3 và
img.bg {
  /* Set rules to fill background */
  min-height: 100%;
  min-width: 1024px;
	
  /* Set up proportionate scaling */
  width: 100%;
  height: auto;
	
  /* Set up positioning */
  position: fixed;
  top: 0;
  left: 0;
}

@media screen and [max-width: 1024px] { /* Specific to this particular image */
  img.bg {
    left: 50%;
    margin-left: -512px;   /* 50% */
  }
}
1 của 100%, bảo tồn tỷ lệ khung hình của nó.

.bg {
  position: fixed; 
  top: 0; 
  left: 0; 
	
  /* Preserve aspet ratio */
  min-width: 100%;
  min-height: 100%;
}

Tuy nhiên, điều này không tập trung vào hình ảnh và đó là một mong muốn khá phổ biến ở đây, vì vậy, chúng ta có thể sửa nó bằng cách gói hình ảnh trong một div. Đó là div, chúng tôi sẽ làm lớn gấp đôi cửa sổ trình duyệt. Sau đó, hình ảnh sẽ được đặt, vẫn bảo tồn tỷ lệ khung hình của nó và bao phủ cửa sổ trình duyệt có thể nhìn thấy và trung tâm chết của điều đó.

.bg {
  position: fixed; 
  top: -50%; 
  left: -50%; 
  width: 200%; 
  height: 200%;
}
.bg img {
  position: absolute; 
  top: 0; 
  left: 0; 
  right: 0; 
  bottom: 0; 
  margin: auto; 
  min-width: 50%;
  min-height: 50%;
}

Tín dụng cho Corey Worrell cho khái niệm về điều này.

Hoạt động trong:

  • Bất kỳ phiên bản trình duyệt tốt nào: Safari / Chrome / Opera / Firefox
  • Tức là 6: borked - nhưng có thể có thể sửa được nếu bạn sử dụng một số loại shim định vị cố định
  • Tức là 7/8: chủ yếu là hoạt động, trung tâm không có kích thước nhỏ nhưng lấp đầy màn hình tốtfail in the same way [wrongly positioned, not sure why]
  • Tức là 9: hoạt động

Xem bản demo

Kỹ thuật chỉ CSS #2 Trying to get this to work on Android? JL García wrote to me saying he needed to add height: 100%; and overflow: hidden; to the html element to get it to work. The full snippet being:

html {
  background: url[images/bg.jpg] no-repeat center center fixed;
  background-size: cover;
  height: 100%;
  overflow: hidden;
}

Một cách khá đơn giản để xử lý điều này là đặt một hình ảnh nội tuyến trên trang, cố định vị trí nó ở phía trên bên trái và cho nó một

img.bg {
  /* Set rules to fill background */
  min-height: 100%;
  min-width: 1024px;
	
  /* Set up proportionate scaling */
  width: 100%;
  height: auto;
	
  /* Set up positioning */
  position: fixed;
  top: 0;
  left: 0;
}

@media screen and [max-width: 1024px] { /* Specific to this particular image */
  img.bg {
    left: 50%;
    margin-left: -512px;   /* 50% */
  }
}
3 và
img.bg {
  /* Set rules to fill background */
  min-height: 100%;
  min-width: 1024px;
	
  /* Set up proportionate scaling */
  width: 100%;
  height: auto;
	
  /* Set up positioning */
  position: fixed;
  top: 0;
  left: 0;
}

@media screen and [max-width: 1024px] { /* Specific to this particular image */
  img.bg {
    left: 50%;
    margin-left: -512px;   /* 50% */
  }
}
1 của 100%, bảo tồn tỷ lệ khung hình của nó.

Tuy nhiên, điều này không tập trung vào hình ảnh và đó là một mong muốn khá phổ biến ở đây, vì vậy, chúng ta có thể sửa nó bằng cách gói hình ảnh trong một div. Đó là div, chúng tôi sẽ làm lớn gấp đôi cửa sổ trình duyệt. Sau đó, hình ảnh sẽ được đặt, vẫn bảo tồn tỷ lệ khung hình của nó và bao phủ cửa sổ trình duyệt có thể nhìn thấy và trung tâm chết của điều đó.

Tín dụng cho Corey Worrell cho khái niệm về điều này.

Safari / Chrome / Firefox [didn kiểm tra rất xa, nhưng các phiên bản gần đây vẫn ổn]

#bg { position: fixed; top: 0; left: 0; }
.bgwidth { width: 100%; }
.bgheight { height: 100%; }
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
0

Tức là 8+

Hoạt động trong:

  • Opera [bất kỳ phiên bản nào] và IE đều thất bại theo cùng một cách [định vị sai, không chắc tại sao]
  • Peter Vanwylen đã viết để nói rằng nếu bạn thêm hình ảnh qua JavaScript, IMG cần phải có chiều rộng: tự động; và chiều cao: Tự động; để làm việc trong IE 8, 9 hoặc 10.

Xem bản demo

Kỹ thuật chỉ CSS #2 Reader Craig Manley writes in with a technique to load an appropriately sized background image according to screen. As in, don’t load some huge 1900px wide background image for an iPhone.

Một cách khá đơn giản để xử lý điều này là đặt một hình ảnh nội tuyến trên trang, cố định vị trí nó ở phía trên bên trái và cho nó một

img.bg {
  /* Set rules to fill background */
  min-height: 100%;
  min-width: 1024px;
	
  /* Set up proportionate scaling */
  width: 100%;
  height: auto;
	
  /* Set up positioning */
  position: fixed;
  top: 0;
  left: 0;
}

@media screen and [max-width: 1024px] { /* Specific to this particular image */
  img.bg {
    left: 50%;
    margin-left: -512px;   /* 50% */
  }
}
3 và
img.bg {
  /* Set rules to fill background */
  min-height: 100%;
  min-width: 1024px;
	
  /* Set up proportionate scaling */
  width: 100%;
  height: auto;
	
  /* Set up positioning */
  position: fixed;
  top: 0;
  left: 0;
}

@media screen and [max-width: 1024px] { /* Specific to this particular image */
  img.bg {
    left: 50%;
    margin-left: -512px;   /* 50% */
  }
}
1 của 100%, bảo tồn tỷ lệ khung hình của nó.

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
1

Tuy nhiên, điều này không tập trung vào hình ảnh và đó là một mong muốn khá phổ biến ở đây, vì vậy, chúng ta có thể sửa nó bằng cách gói hình ảnh trong một div. Đó là div, chúng tôi sẽ làm lớn gấp đôi cửa sổ trình duyệt. Sau đó, hình ảnh sẽ được đặt, vẫn bảo tồn tỷ lệ khung hình của nó và bao phủ cửa sổ trình duyệt có thể nhìn thấy và trung tâm chết của điều đó.

Tín dụng cho Corey Worrell cho khái niệm về điều này.

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader[src='.myBackground.jpg', sizingMethod='scale'];
-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader[src='myBackground.jpg', sizingMethod='scale']";
2

Safari / Chrome / Firefox [didn kiểm tra rất xa, nhưng các phiên bản gần đây vẫn ổn]

Tức là 8+

Opera [bất kỳ phiên bản nào] và IE đều thất bại theo cùng một cách [định vị sai, không chắc tại sao]

Peter Vanwylen đã viết để nói rằng nếu bạn thêm hình ảnh qua JavaScript, IMG cần phải có chiều rộng: tự động; và chiều cao: Tự động; để làm việc trong IE 8, 9 hoặc 10.

CẬP NHẬT Tháng 1 năm 2018: Cố gắng làm cho việc này hoạt động trên Android? JL García viết cho tôi nói rằng anh ta cần thêm chiều cao: 100%; và tràn: ẩn; đến phần tử HTML để làm cho nó hoạt động. Đoạn trích đầy đủ:

  • Tôi đã thử nghiệm nó, và nó có vẻ hoàn toàn chính xác. Không có nó / với nó.
  • Phương pháp jQuery

Làm cách nào để tạo một hình ảnh nền phù hợp với toàn bộ CSS màn hình?

Đổ đầy toàn bộ chế độ xem với thuộc tính kích thước nền, có thể đặt thuộc tính kích thước nền CSS để che. Sử dụng giá trị này, trình duyệt sẽ tự động và tỷ lệ mở rộng quy mô chiều rộng và chiều cao của hình nền để chúng bằng hoặc lớn hơn chiều rộng và chiều cao của cổng. It is possible to set the CSS background-size property to cover. Using this value, the browser will automatically and proportionally scale the background image's width and height so that they are either equal to or greater than the view port's width and height.

Làm thế nào để tôi đặt một hình ảnh làm toàn bộ nền trong HTML?

Nếu bạn muốn hình ảnh nền để bao phủ toàn bộ phần tử, bạn có thể đặt thuộc tính kích thước nền để che.set the background-size property to cover.

Làm cách nào để thêm hình ảnh nền vào toàn bộ trang web?

Để đặt hình ảnh nền của trang web, hãy sử dụng kiểu CSS.Trong thẻ CSS, thêm hình ảnh nền thuộc tính.Thuộc tính đặt một đồ họa như JPG, PNG, SVG, GIF, v.v. HTML5 không hỗ trợ thuộc tính nền, vì vậy CSS được sử dụng để thay đổi hình ảnh nền.Under the CSS tag, add the property background-image. The property sets a graphic such as jpg, png, svg, gif, etc. HTML5 do not support the background attribute, so CSS is used to change set background image.

Làm cách nào để tạo toàn màn hình CSS?

Chiều cao: 100% trước khi đặt thuộc tính chiều cao thành 100% bên trong.....
Chiều cao: 100VH.Các .....
Vị trí: Tuyệt đối.Bạn cũng có thể sử dụng vị trí tuyệt đối cũng như đặt tất cả các cạnh chế độ xem [trên cùng, bên phải, dưới cùng, bên trái] thành 0px sẽ làm cho Div lấy toàn bộ màn hình ..

Bài Viết Liên Quan

Chủ Đề