美文网首页MG名冠技术文档CSS相关技术文章
CSS实现自适应不同大小屏幕的背景大图的两种方法

CSS实现自适应不同大小屏幕的背景大图的两种方法

作者: 愿你如夏日清凉的风 | 来源:发表于2017-05-08 16:23 被阅读11347次

一张清晰漂亮的背景图片能给网页加分不少,设计师也经常会给页面的背景使用大图,我们既不想图片因为不同分辨率图片变形,也不希望当在大屏的情况下,背景有一块露白,简而言之,就是实现能自适应屏幕大小又不会变形的背景大图,而且背景图片不会随着滚动条滚动而滚动。

用CSS实现真的很简单很简单,下面我们来看一下第一种方法具体的代码:

HTML代码:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>title</title>
</head>
<body>
<div class="wrapper">
    <!--背景图片-->
    <div id="web_bg" style="background-image: url(./img/bg.jpg);"></div>
    <!--其他代码 ... -->
</div>
</body>
</html>

CSS代码:

#web_bg{
  position:fixed;
  top: 0;
  left: 0;
  width:100%;
  height:100%;
  min-width: 1000px;
  z-index:-10;
  zoom: 1;
  background-color: #fff;
  background-repeat: no-repeat;
  background-size: cover;
  -webkit-background-size: cover;
  -o-background-size: cover;
  background-position: center 0;
}

你看,代码就是这么简单。
下面,我们来分析一下,css中每句代码的作用是什么:

  position:fixed;
  top: 0;
  left: 0;

这三句是让整个div固定在屏幕的最上方和最左方

  width:100%;
  height:100%;
  min-width: 1000px;

上面前两句是让整个div跟屏幕实现一模一样的大小,从而达到全屏效果,而min-width是为了实现让屏幕宽度在1000px以内时,div的大小保持不变,也就是说在这种情况下,缩放屏幕宽度时,图片不要缩放(只有在1000px以内才有效)。

  z-index:-10;

这个的目的是让整个div在HTML页面中各个层级的下方,正常情况下,第一个创建的层级z-index的值是0,所以如果我们这里写成-1也可以实现,不过这里写-10是确保整个div在最下面,因为如果页面中层级太多了,有的时候用-1不一定在最下面,但如果写成-100这样大数字的也没有什么意义。用index:-10 以此能达到看上去像背景图片,其实是一个最普通的div,只是层级关系变了,才让人看上去看是背景图片。

zoom: 1;

这个的目的是为了兼容IE浏览器

background-repeat: no-repeat;

上面这个是背景不要重复

  background-size: cover;
  -webkit-background-size: cover;
  -o-background-size: cover;

上面三句是一个意思,就是让图片随屏幕大小同步缩放,但是有部分可能会被裁切,不过不至于会露白,下面两句是为chrome和opera浏览器作兼容。

  background-position: center 0;

上面这句的意思就是图片的位置,居中,靠左对齐

第二种方法的代码

HTML代码如下:

<div class="about-me">
      ![](./images/about-me.jpg)
      <a href="http://iheima.com" class="introduction">
          <h3>About me</h3>
      </a>
</div>

scss代码如下:

.about-me {
            position: relative;
            min-width: 1480px;
            width: 100%;
            height: 520px;
            overflow: hidden;
            img.me {
                position: absolute;
                bottom: 0;
                left: 0;
                width: 100%;
                height: auto;
                min-height: 520px;
                z-index: 0;
            }
            .introduction {
                display: block;
                position: absolute;
                left: 0;
                bottom: 0;
                right: 0;
                top: 0;
                width: 100%;
                height: 100%;
                color: #fff;
                background: rgba(0, 0, 0, .6);
                z-index: 2;
                cursor: pointer;
                h3 {
                    margin: 100px auto 140px;
                    width: 170px;
                    height: 90px;
                    line-height: 90px;
                    font-size: 36px;
                    border-bottom: 2px solid #0b6d99;
                }
            }
        }

相关文章

  • CSS实现自适应不同大小屏幕的背景大图的两种方法

    一张清晰漂亮的背景图片能给网页加分不少,设计师也经常会给页面的背景使用大图,我们既不想图片因为不同分辨率图片变形,...

  • vue 中自适应

    原生的css自适应通过 @media only screen 去监听屏幕的大小实现Pc、Pad、手机等屏幕大小自适...

  • css实现屏幕高度自适应

    背景介绍: A,B,C三个div自适应屏幕大小,布局如图所示: html: css:

  • web 开发入门技巧

    css部分 为不同链接添加不同样式 跨浏览器灰度图 动画背景 清除浮动 表格宽度自适应 任意阴影 文本宽度自适应 ...

  • 背景图图片全屏铺满自适应

    分享3种CSS实现背景图图片全屏铺满自适应的方式,希望对你有所帮助。01 02 03 给body标签指定背景图,这...

  • HTML+CSS

    1、css实现图片自适应宽高 背景图用background-size: contain,图片标签用object-f...

  • 如何用CSS实现背景图片自适应?

    在HTML中通过CSS设置背景图片自适应浏览器大小,该如何实现? 用background-size属性,你想给他多...

  • [CSS3]字体自适应相关

    为了使字体大小较不同屏幕来说自适应,此处使用了vw的宽度单位15vw = 15% 视窗宽度此CSS 3单位兼容性:...

  • 自适应网站

    什么是自适应网站? 指的是网页通过不同尺寸不同终端设备访问可以自适应显示,根据屏幕大小、宽度自动调整布局,自适应也...

  • iOS - Swift自定义UIFont字号自适应屏幕

    【Swift】自定义UIFont字号自适应屏幕 为方便项目中统一调用不同的字号,及字号大小自适应屏幕,对UIFon...

网友评论

    本文标题:CSS实现自适应不同大小屏幕的背景大图的两种方法

    本文链接:https://www.haomeiwen.com/subject/hfzmtxtx.html