静态页面的css总结(居中,背景图片) 最全解!

1 居中

水平居中

行内元素水平居中

这里的行内元素指的是文本text,图像img,超链接a,按钮等

text-align: center;    /*在父元素上设置*/

块级元素水平居中

1.改变块级元素的display属性为inline-block,然后给父级元素设置text-align: center

#div4 {
        text-align: center
}
#div5 {
    display: inline-block;
    background-color: blue;
}

<div id="div4">
	<div id="div5">不定宽元素水平居中</div>
</div>

2.利用绝对定位
(1)元素宽高已知的情况下,让元素向右偏移50%,margin-left设为负值,可以让元素相对于自己原来的位置向左移动相应的距离。

#div6 {
        position: absolute;
        width: 200px;
        height: 200px;
        left: 50%;
        margin-left: -100px; 
        background-color: yellow;
}
<div id="div6">定宽元素水平居中</div>

(2)元素宽高已知的情况下,利用神奇的margin: 0 auto
auto 只会取父元素剩余空间的宽度和0两个值,当元素的布局方式为 static/relative 且宽高已知时,auto 取父元素剩余空间的宽度;当元素的布局方式为 postion/absolute/fixed 或者 float/inline 或者宽高未知时,auto 就取 0。

利用元素的流体特性:当一个绝对定位元素,其对立定位方向属性同时有具体定位数值的时候,流体特性就发生了。

#div3 {
    position: absolute;
    width: 300px;
    height: 300px;
    background-color: pink;
    left: 0px;
    right: 0px;
    top: 0px;
    bottom: 0px;
    margin: auto;
  }

(3)元素宽高未知的情况下,动画属性:让元素向右偏移50%,然后再向左偏移自身的50%;

#div6 {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        background-color: yellow;
}
<div id="div6">不定宽元素水平居中</div>
  1. 利用flex实现水平居中
#div1 {
        display: flex;
}
#div2 {
       background-color: pink;
       margin: 10px auto;
}

<div id="div1">
    <div id="div2">不定宽元素水平居中</div>
</div>
#div1 {
        display: flex; /*对父元素应用flex布局*/
        justify-content: center; /*设置主轴方向(默认水平方向)的子元素居中排列*/
}
#div2 {
    	background-color: pink;
}
<div id="div1">
    <div id="div2">不定宽元素水平居中</div>
</div>

垂直居中

几种方法:
1. 绝对定位(绝对定位元素的水平垂直居中)
如果子元素高度不知,还可以使用transfrom。
这种方法多用于绝对定位元素的水平垂直居中(宽高已知或者未知都可以。)

#div0 {
         width: 400px;
          height: 400px;
          background-color: pink;
          position: relative;
    }
#div2 {
	    width: 100px;
	    height: 100px;
	    background-color: yellow;
	    position: absolute;  //绝对定位
	    left: 50%;
	    top: 50%;    //先偏离高度父元素的50%
	    transform: translate(-50%,-50%);  /*css3的方法*/
	    /*margin-left: -50px;
	    margin-top: -50px;   如果元素宽高已知*/
}
<div id="div0">
	<div id="div2">div2垂直居中</div>
</div>

2. 通过绝对定位结合margin: auto(绝对定位元素的垂直居中)
这种方法多用于绝对定位元素的垂直居中。被居中元素的宽度也可以不设置,但是不设置的话,就必须是图片这种自身就包含尺寸的元素,否则无法实现。

#div0 {
        width: 400px;
          height: 400px;
          background-color: pink;
          position: relative;
}
#div2 {
	width: 100px;
	height: 100px;
     background-color: yellow;
     position: absolute;
     top: 0;
     right: 0;
     left: 0;
     bottom:0;
     margin: auto
 }

3. 通过flex
这种方法大多用于多个子元素的水平垂直居中,宽高已知或者未知都可以。

#div0 {
            width: 400px;
            height: 400px;
            background-color: pink;
            display: flex;              /*flex布局*/
            align-items: center;        /*子元素垂直居中*/
            justify-content: center;   /*子元素水平居中*/
  }
#div2 {
    width: 100px;
    height: 100px;
    background-color: yellow;
}
<div id="div0">
    <div id="div2">div2水平垂直居中</div>
</div>

4. table布局

#center {
  background-color: red;
  display: inline-block;     /* 因为table-cell理论上只能处理具备行内特性的元素布局 */
}

#container {
   width: 400px;
   height: 400px;
   background-color: black;
   display: table-cell;             /*设置父元素的display*/
   text-align: center;              /* 容器内子元素水平居中 */
   vertical-align: middle;         /* 容器内子元素垂直居中 */
 }

5. 通过line-height实现单行文本的垂直居中
设置子元素的line-height等于父元素的height,这种方法仅适用于单行文本的情况,且父元素的高度必须已知。

#div1 {
	width: 400px;
	height: 100px;
	background-color: pink;
}
p {
	line-height: 100px;
}

<div id="div1">
    <p>awefawe</p>
</div>

6. 给父元素设置padding实现子元素的垂直居中
给父元素设置相等的上下内边距,则子元素自然是垂直居中的,但是这个方法中父元素是不能设置高度的,要让它自动被填充起来。

#div0 {
            width: 400px;
            background-color: pink;
            padding: 100px 0;
        }
#div2 {
     width: 100px;
     height: 100px;
     background-color: yellow;
 }
 
 <div id="div0">
    <div id="div2">div2水平垂直居中</div>
</div>

2 背景图片

background
背景缩写属性可以在一个声明中设置所有的背景属性。
可以设置的属性分别是:background-color、background-position、background-size、background-repeat、background-origin、background-clip、background-attachment 和 background-image
各值之间用空格分隔,不分先后顺序。

background-size

描述
length设置背景图片高度和宽度。第一个值设置宽度,第二个值设置的高度。如果只给出一个值,第二个是设置为 auto(自动)
percentage将计算相对于背景定位区域的百分比。第一个值设置宽度,第二个值设置的高度。如果只给出一个值,第二个是设置为"auto(自动)"
cover此时会保持图像的纵横比并将图像缩放成将完全覆盖背景定位区域的最小大小。
contain此时会保持图像的纵横比并将图像缩放成将适合背景定位区域的最大大小。

1. 实现背景图片固定宽高比缩放
实现背景图片固定宽高比缩放我们采用padding-top:(percentage)来实现,padding-top取值百分比是相对于包含块的宽度而定。

<style>
    .con {
      width: 100%;
      padding-top: 140%;
      background: url('image/一寸照.jpg') no-repeat;
      background-size: cover;
    }
  </style>

2. 让背景图片铺满容器而不变形的方法
这种方法适用于图片铺满整个浏览器窗口:

#app {
        /*图片铺满整个浏览器窗口,设置在body身上也可以*/
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: url('./img/bg.png') no-repeat;
        background-size: cover;
        z-index: -1;
}

<body>
    <div id="app"></div>
</body>

这种方法只能用于铺满指定高度的容器

 #app {
        height: 500px;  /*图片铺满整个容器,只能用于铺满指定高度的容器*/
        width: 100%;
        background: url('./img/bg.png') no-repeat;
        background-size: cover;
}

<body>
    <div id="app"></div>
</body>

这种方法能用于铺满不指定高度的容器,但是不适用于背景上有文字的时候
这种方法是响应式填满a容器。

.a {
       width: 100%;
}
.b {
     /*使用padding-top实现响应式背景图片,高/宽*/
     /*不适用于背景上有文字的时候,文字会显示在底部*/
     padding-top: 60%; 
     background-image: url('./img/下载.jpg');
     background-size: cover;
 }
 
 <div class="a">
        <div class='b'></div>
 </div>

3. 固定背景图片的高度,让宽度自适应

.con {
    width: 100%;
    height: 300px;
    background: url("image/vpb_intro/introduce_9.png") center center no-repeat;
    background-size: cover;
### 回答1: 这张静态页面的实现可以使用HTMLCSS和JavaScript。 HTML可以用来构建页面的结构和内容,例如标题,段落,图片等。 CSS可以用来给页面元素添加样式,例如字体,颜色,布局等。 JavaScript可以用来添加交互和动态效果,例如弹出框,轮播图等。 要实现这张图片,需要用HTML先构建页面的结构,然后使用CSS页面元素添加样式,最后使用JavaScript添加交互和动态效果。 ### 回答2: 使用HTMLCSS和JavaScript可以很容易地实现这张静态页面。首先,我们可以使用HTML来构建页面的基本结构和布局。在HTML中,我们可以使用<div>、<header>、<nav>、<section>、<article>、<footer>等元素来划分页面的不同区域和部分,并使用适当的标签来标识它们的作用。 接下来,使用CSS来美化页面,包括设置背景、字体、颜色、边框、大小等样式。我们可以使用CSS选择器来选择特定的元素,并为其应用样式。使用CSS框模型可以使页面在不同屏幕上具有良好的响应性和适应性。 最后,使用JavaScript来为页面添加交互功能。我们可以使用JavaScript选择指定的元素,并为它们添加事件处理程序。例如,当用户点击按钮时,我们可以使用JavaScript来执行相应的操作,如显示弹出窗口、发送请求或切换元素的可见性。 综上所述,使用HTMLCSS和JavaScript可以实现这张静态页面。通过合理的结构和布局、美化样式和交互功能,我们可以为用户提供良好的使用体验。 ### 回答3: 使用HTMLCSS和JavaScript实现该静态页面可以分为以下几个步骤: 1. HTML:首先,我们需要创建一个空的HTML文件。然后,可以使用HTML标签来构建页面的结构。根据图片,我们需要创建一个包含标题、导航栏、内容和页脚的页面结构。 2. CSS:接下来,我们可以使用CSS来为页面添加样式。根据图片,我们可以设置页面的背景、文字颜色、字体等。同时,还可以使用CSS来控制页面的布局,如设置导航栏和内容的位置、大小等。 3. JavaScript:最后,我们可以使用JavaScript来实现页面的交互效果。根据图片,我们可以使用JavaScript来实现鼠标移动、点击等事件的响应。例如,当鼠标移动到导航栏上时,可以改变导航栏的颜色;当点击某个按钮时,可以显示其他内容等。 总结来说,使用HTMLCSS和JavaScript实现该静态页面需要先建立页面的结构(HTML),然后添加样式(CSS),最后实现交互效果(JavaScript)。通过这三者的结合,我们可以实现一个与图片相似的静态页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值