【前端CSS】CSS的选择器属性详细介绍

【一起来学CSS】

什么是css呢?就是一个层叠样式表,对一个元素层叠的套用.对同一个元素对象进行多方面的套用

基本格式:

内部样式表

使用style选择器,放在html的内部

	<style>
        元素{
           属性:;
            属性:}
    </style>

css的语法结构非常的简单,使用style标签包裹着元素的值.这个元素是一个对象.可以是一个标题,可以是一个表格,一个文本框

然后大括号里面是属性的相关的值,对对象的样式进行修改

另外,style标签放到哪里都是可以的,也可以有多个,我们习惯于放于head中

键值对之间使用分号来进行连接

键和值之间使用冒号进行连接

行内样式表

就是将修饰的属性放到具体的标签的内部.

内部样式表像全局变量,行内样式表像局部变量

所以,行内样式表的优先级是比内部样式表的优先级高的

image-20220326163218241

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BTkB3riw-1656758618912)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220326163850517.png)]

上面是同时使用行内样式表和内部样式表的效果.可以看到一个对象是多个样式共同作用的结果

外部样式表

就是新建一个css文件,里面是对对象的描述.然后将这个css文件引入到html中,就可以对html中的对象进行修饰了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1zvgWzKV-1656758618914)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220326170026110.png)]

需要注意的是,再主html页面中一定要加上link标签.

然后再href属性中填上地址,rel属性就代表样式表

这个link标签一般是放在head标签中的,这种link标签可以存在多个,不冲突

<head>
<link rel="stylesheet" type="text/css" href="theme.css" />
</head>

但是要注意有可能外部样式表可能加载不出来.这是因为浏览器再加载html文件的时候,也会从服务器端下载css文件.

但是它只是在第一次下载的时候从内存中下载,之后为了方便以后的访问,浏览器就会将css文件放在缓存中,这样以后访问的时候提取文件就会非常的快.

所以,有时候我们修改外部的css文件的时候可能不会有更新

但是,我们只要按上ctrl f5 就会强制的从内存中读取信息了

还有一种好的方法就是每次更改css表的时候都修改名字,这样浏览器看到是陌生的文件就会从内存中去读取了

代码风格

样式格式

紧凑格式

就是所有的空格和换行全部都省略的情况.

这一点对于开发的时候是不会用的,但是对于部署阶段我们一般就得这样用,

因为,网页在运行的时候是需要下载css代码的,代码越长,占用的网络带宽就越大,时间就越长.

所以,这种格式还是有很大的作用的

展开格式

这个方式就是我们现在正常写代码的方式了,将代码展开,方便去阅读

命名格式

是采用脊柱命名法就是font-size这样,中间使用一个-来进行连接

选择器

基础选择器

标签选择器

就是我们之前写的根据元素是什么样子的

这样会对所有的p标签全部设置

类选择器

在css中的类和以往的类都是不一样的,这个类不是面向对象的类,只是一个分类而已

类的表示方法:

用.开头+类的名字{

属性=值

}

下面是一个类的具体例子:

		.class1{
            color: red;
        }

然后将想要是标记为class1类的对象加入加入到相应的属性中

test my outer css
hh
ss
ss
xx
aa
image-20220326204152644

红色的就是被标记的


一个类可以标记多个对象,一个对象也可以被多个类所标记

xx

类名和类名之间使用空格分开

如果这两个选择器中有相同的属性值,则该属性值先被改为.user中的值,再被改为.login中的值,即重复的属性以最后一个选择器中的属性值为准。


另外,每一个类选择器必须是和基础选择器在同一个style中的.这个类选择器只可以去修饰基础选择器中的标签,不可以去选择别的

id选择器#

由于每一个对象都是有唯一一个独一无二的id,所以使用id选择器就可以只对一个对象进行选中.

这就和类选择器有了区分,毕竟类选择 器可以一对多,多对多呢

id选择器的格式

创建id选择器的时候都是#+id名

    	#createid{
            color: rgb(79, 238, 16);;
        }
<div id="createid">ss</div>

通配符选择器*

将所有的对象都选中,不需要指定,通常是为了消除浏览器的默认配置

复合选择器

将所有的选择器全部都结合起来

后代选择器

选中后代,可以是子类,也可以是孙子,等等

这样就可以对选中一些子类中的某些元素了

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        ul {
            color: green;
        }
        /* 对子类进行选择*/
        ul li{
            font-size: 35px;
        }
        /* 对孙子进行选择 */
        ul div{
            font-size: 56px;
        }
    </style>
</head>
<body>
    <ul>
        <li>css1</li>
        <li>css2</li>
        <li>
            <div>hhhhh</div>
        </li>
    </ul>
</body>
</html>
image-20220326212321102

这样选择的就更加的准确了


另外后代选择器可以是任意选择器的组合.前面我们是一标签为实例演示的,选了一个标签下面的子标签.同样的,我们也可以根据类选择器,id选择器,来选择相应的类和id下面的子标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        ul {
            color: green;
        }
        /* 对子类进行选择
        ul li{
            font-size: 35px;
        }
       
        ul div{
            font-size: 56px;
        } */
        /* 和类选择器一起使用 */
        .classUL li div{
            color: red;
        }
    </style>
</head>
<body>
    <ul class="classUL">
        <li>css1</li>
        <li>css2</li>
        <li>
            <div>hhhhh</div>
        </li>
    </ul>
</body>
</html>

子选择器>

和后代选择器是一样的,但是只可以选用子类,不可以选用孙子类

格式:

元素1>元素2{
	属性:值;
}
	.classUL>div {
            color: red;
        }

只有子类可以被选中,孙子类不可以被选中

<body>
    <ul class="classUL">
        <li>css1</li>
        <li>css2</li>
        <div>hhhhh</div>
        <li>
            <div>hhhhh</div>
        </li>
    </ul>
</body>

并集选择器,

并集选择器可以对多个标签进行选择,使用逗号进行连接

并且其他的选择器也可以被选择

<body>
    <ul class="classUL">
        <li>css1</li>
        <li>css2</li>
        <div>hhhhh</div>
        <li>
            <div>hhhhh</div>
        </li>
        <li> <p>ppppp</p></li>
    </ul>
    <div>dshjkad</div>
    <div>dshjkad</div>
    <div>dshjkad</div>
    <div>dshjkad</div>
    <style>
        ul>div,
        ul>li>p{
            color: aquamarine;
        }
    </style>
</body>

就是可以同时选中多个标签

最好每一个对象独自占一行

好处就是实现了代码的复用,更加的方便了

伪类选择器:

链接伪类选择器

主要是针对a标签使用的

主要是一些状态的改变,使用:来表示状态

:link 表示还没有访问过

:visited 表示已经访问过

:hover 表示鼠标没有点上去,只是悬停

:active 表示鼠标点中了,但是没有收手

下面就用一个链接来演示一下:

<style>
        a{
            font-size: 56px;
        }
        a:link {
            color: rgb(202, 54, 103);
        }
        a:visited{
            color: rgb(240, 189, 189);
        }
        a:hover{
            color: rgb(121, 106, 204);
        }
        a:active{
            color: rgb(22, 11, 11);
        }
    </style>

同时,不仅仅是a标签有上面的状态,对于其他的标签来说:hover和active也是可以用的

下面就以button来演示一下吧

<input type="button" value="确定按钮">
		input:hover{
            color: rgb(121, 106, 204);
        }
        input:active{
            color: rgb(22, 11, 11);
        }

这样也是可以的

焦点伪类选择器

这个就是我们当前选中的元素就是焦点。当我们对焦点进行操作的时候,焦点和别的元素有区别。

尤其是针对输入框,当我们对焦点输入框输入的时候,可以有明显的区别

 	<input type="text">
    <input type="text">
    <input type="text">
    <input type="text">

当我们加入了焦点以后

	 input:focus{
            color: rgb(233, 96, 96);
        }

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1hMGzpcg-1656758618914)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220327170447630.png)]

CSS的属性

CSS 参考手册 (w3school.com.cn)

字体的属性

字体的样式font-family

	<!-- 设置字体 -->
    <div>
        <span>请填写姓名</span>
        <input type="text">
    </div>
    <style>
        body{
            font-family: '楷体';
        }
    </style>
image-20220327171802453

font-famly属性可以被子类从父类继承的,所以虽然style中写的是body标签,但是span标签也是可以继承这个标签的.

但是像这种input标签好像还不太可以

input标签必须手动在对input进行标记

image-20220327172159572
`<!-- 设置字体 -->
    <div>
        <span>请填写姓名</span>
        <input type="text">
    </div>
    <style>
        body{
            font-family: '楷体';
        }
        input{
            font-family: '楷体';
        }
    </style>

字体的大小font-size

	 <style>
        body{
            font-family: '楷体';
            font-size: 50px;
        }
        input{
            font-family: '楷体';
            font-size: 50px;

        }
    </style>
image-20220327180059097

字体的粗细font-weight

粗细可以写单词也可以写数字

normal正常---------------400

bold粗的-------------------700

bolder更粗的

lighter细的

数字在100~900之间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5PUivBIX-1656758618915)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220327181411971.png)]

字体的倾斜font-style

不倾斜:normal

倾斜:italic

 <div>
        <span>请填写姓名</span>
        <input type="text">
    </div>
    <style>
        body{
            font-family: '楷体';
            font-size: 50px;
            font-weight: bolder;
            font-style: italic;
        }
        input{
            font-family: '楷体';
            font-size: 50px;
            font-weight: lighter;

        }
    </style>

image-20220327181814658

文本属性

文本颜色color

现在我们有必要去介绍一下计算机中的三原色

和我们现实生活中的红黄蓝不同

计算机中的三原色是光三原色:红,绿,蓝,也统称为RGB

计算机中为了描述RGB就给每一个颜色开辟了1个字节,8个bit

所以红绿蓝的范围都是0~255

其中:

255,0,0是红色,

0,2550是绿色

0,0,255是蓝色

0,0,0是黑色

255,255,255是白色

表示方式:

color:red;

color:rgb(255,0,0);

color:#ff0000;

<!-- 设置字体 -->
    <div>
        <span>请填写姓名</span>
        <input type="text">
    </div>
    <style>
        body{
            font-family: '楷体';
            font-size: 50px;
            font-weight: bolder;
            font-style: italic;
            color: rgb(245,87,117);

        }
        input{
            font-family: '楷体';
            font-size: 50px;
            font-weight: lighter;
            color: aqua;

        }
    </style>
image-20220327183902613

另外除了rgb以外,还有一个rgba

这里的a是透明度

a也是分配了一个字节0255,但是我们一般都是在01之间使用

1是不透明

0是全透明(也就是没了)

            color: rgba(245,87,117,0.5);

下面是0.5的效果

image-20220327192034077

表示透明度还有一种方法就是使用opacity,这个和rgba的区别就是opacity是被可以被子元素继承的,但是rgba是不可以被子元素继承,只可以作用于当前的元素

文本对齐text-align

center中间

left左边

right右边

 	<a href="huj" class="left">一个链接</a>
    <br>
    <input type="button" value="确定按钮" >
    <div class="center"> hhh</div>
    <br>
    <!-- 设置字体 -->
    <div class="right">
        <span>请填写姓名</span>
        <input type="text">
    </div>
 		.center{
            text-align: center;
        }
        .left{
            text-align: left;
        }
        .right{
            text-align: right;
        }
image-20220327193831583

文本装饰text-decoration

none消除下划线

underline下划线

overline上划线

over-through穿过

hhhhhhhh
hhhhhhhhhh
ffffffff
fffffffff
image-20220327194821962

但是,这个none主要是为例消除a链接的下划线来使用的

image-20220327195016793
  <a href="dsfsfsd">一个链接</a>
  <style>
      a{
          text-decoration: none;
          font-size: large;
          color: rgb(143, 29, 29);
      }
  </style>

文本缩进text-indent

对文本进行首行缩进,缩进也可以是负数

<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nesciunt earum, quaerat delectus quia mollitia neque, a ullam exercitationem cum eligendi nostrum consequatur dicta dolores perspiciatis tempora, odit blanditiis fugit dolorem.</p>
    <style>
        p{
            font-size: 50px;
            /* text-indent: 2em; */
            text-indent: 100px;
        }
    </style>

字体大小是50px

indent就是100px的意思是空出两个字的位置,这个em在不同的单位下是不一样的

2em也是空出两个50px的意思.

em也是一个单位,和px的大小有关

image-20220327195800619

行高line-height

行高就是:上边距+字体大小+下边据

如果行高是100px,字体大小是50px,那么上下边据都是25px

写的方式:

  1. 直接写行间距100px
  2. 写字母:normal
  3. 写小数:1.5 表示行间距是字体大小的1.5倍
<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nesciunt earum, quaerat delectus quia mollitia neque, a ullam exercitationem cum eligendi nostrum consequatur dicta dolores perspiciatis tempora, odit blanditiis fugit dolorem.</p>
    <style>
        p{
            font-size: 50px;
            text-indent: 2em;
            line-height: 100px;
            
        }
    </style>
image-20220328211349671

对于单行来说:行高和父元素的高读相同就可以实现垂直方向上居中对齐的效果

这很容易去理解,如果行高和父元素的高度相同,上下间距是相同的,所以元素就在中间

<p>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Nesciunt earum, quaerat delectus quia mollitia neque, a ullam exercitationem cum eligendi nostrum consequatur dicta dolores perspiciatis tempora, odit blanditiis fugit dolorem.</p>
    <style>
        p{
            font-size: 50px;
            text-indent: 2em;
            line-height: 100px;
            background-color: antiquewhite;
            height:100px;
        }
    </style>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B2m9z2XY-1656758618916)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220329085059760.png)]

背景颜色background-color

background-color的属性和color是一模一样的.

只是多加了一个叫做transparent的颜色,意思是和parent的颜色是相同的

<div class="parent">
        <div class="one">color red</div>
        <div class="two">color blue</div>
        <div class="three">color transparent</div>
    </div>
    <style>
        .parent{
            font-size: 70px;
            background-color: antiquewhite;
        }
        .one{
            background-color: red;
        }
        .two{
            background-color: blue;
        }
        .three{
            /* 和父类的方法一样 */
            background-color: transparent;
        }
    </style>
image-20220329090613639

背景图片background-image

我们不光可以设置背景颜色,还可以设置背景图片

格式:

background-image: url(../image/Moon.jpg);

注意:

url不要忘记写

url里面可以没有网页

路径可以写相对路径

	<div>
        欢迎来到我的个人博客
    </div>
    <style>
        div{
            background-image: url(../image/Moon.jpg);
            height: 500px;
            font-size: 60px;
            color: rgb(241, 239, 239);
            text-align: center;
            line-height: 500px;
            background-repeat: repeat;
        }
    </style>
image-20220329100738309

平铺background-repeat

平铺:repeat

不平铺:no-repeat

水平平铺:repeat-x

垂直平铺:repeat-y

平铺就是像上面那样的,不平铺就是只有一张图片

图片和颜色是可以同时存在的,但是图片在颜色的上面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5Z7WBptM-1656758618916)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220329102343173.png)]

上面就是不平铺然后再加上背景颜色的情况

<div>
        欢迎来到我的个人博客
    </div>
    <style>
        div{
            background-image: url(../image/Moon.jpg);
            height: 500px;
            font-size: 60px;
            color: rgb(241, 239, 239);
            text-align: center;
            line-height: 500px;
            background-repeat: no-repeat;
            background-color: antiquewhite;
        }
    </style>

位置background-position

也是对背景图片来说的,背景图片有一下几个位置

background-position:x y;

对位置有以下的改变:

名词方位:center,left,right,top,bottom

精确方位:坐标或百分比

混合方位:同时含有名词方位和精确方位

image-20220329110710505

如果只是写了一个数字或者是方位,那么就默认就是x的坐标,另外的y坐标默认是center

两个都是方位名称的时候,俩个并不需要顺序

大小background-size

属性的值可以是下面的几种:

  1. 数字 x y 代表长和宽的大小

    background-size: 2000px 600px;

  2. 使用百分比

    代表是原图像的百分之多少

    background-size: 50% 50%;

  3. 使用cover:使图片完全的铺满整个图片的大小,不会有留白

  4. 使用contain:使图片的尺寸最大,可能会没有留白

下面的这个就是使用contain

image-20220329140434967

下面的这个就是使用cover,布满全局

image-20220329140532175

半角矩形border-radius

格式:

  1. 可以是数字100px

    border-radius: 100px;

  2. 可以是百分比

    相当于半径是长度的百分比

圆型

如果长和宽是相同的,那么border-radius=50%,就可以达到圆形了

 	<div class="circle">

    </div>
	.circle{
            height: 400px;
            width: 400px;
            background-color: bisque;
            background-position: left;
            background-size: cover;
            border-radius: 50%;//长和宽的长度相同的时候就可以呈圆形了
        }

椭圆

如果长度和宽度不相同的话,boder-radius是50%的话,就是一个椭圆:

	.circle{
            height: 400px;
            width: 800px;
            background-color: bisque;
            background-position: left;
            background-size: cover;
            border-radius: 50%;
        }
image-20220329144616337

按钮

另外,如果半径的长度是一个矩形的宽度的一般,就是一个按钮

image-20220329150515848 image-20220329150531406

自定义

还可以分别对四个角进行不同的圆弧设定

是按照顺时针的方向进行的,上左,上右,下右,下左

            border-radius:100px 0px 100px 0px;
image-20220329151527336

元素的显示模式

块级元素

就是一个元素占一行的就是块级元素.

常见的

p

h1~h6

div

ul

ol

li

行内元素

span

a

img既不是行内元素,也不是块级元素

  1. 块级元素的子元素可以继承父级元素的高度和宽度,如果自己不修改的话

  2. 块级元素可以修改高度和宽度,但是行内元素不可以修改宽度和高度,只能和文字的大小有关

  3. 块级元素里面可以包含块级元素和行内元素;

    但是行内元素不可以包含别的其他的元素了.这也很好理解,毕竟都是文字还能包含什么呢

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-di6kVj0n-1656758618917)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220404222300324.png)]

上面的就是块内元素里面可以有块内元素,块内元素的性质可以更改

<div class="parent">
       <div class="child1">
           child1
       </div>
       <div class="child">
           child2
       </div>
   </div>
   <style>
       .parent{
           height: 500px;
           width: 600px;
           background-color: rgb(233, 91, 91);
       }
       .child1{
           height: 400px;
           background-color: rgb(151, 111, 111);
       }
   </style>
行内元素可以转为行内元素

使用display的block块

   <a href="链接1">链接1</a>
   <a href="链接2">链接2</a>
   <a href="链接3">链接3</a>
   <a href="链接4">链接4</a>
   <style>
       a{
           color: blanchedalmond;
           /* 可以将行内元素转为块内元素 */
           display: block;
           height: 80px;
           background-color: blue;
       }
   </style>
image-20220405081856338
将行内元素转为行内块元素
   <a href="链接1">链接1</a>
   <a href="链接2">链接2</a>
   <a href="链接3">链接3</a>
   <a href="链接4">链接4</a>
   <style>
       a{
           color: blanchedalmond;
           /* 可以将行内元素转为块内块元素 */
           display: inline-block;
           height: 80px;
           width: 90px;
           background-color: blue;
       }
   </style>
image-20220405082317988
行内元素可以设为none
<style>
       a{
           color: blanchedalmond;
           /* 可以将行内元素转为块内块元素 */
           display: none;
           height: 80px;
           width: 90px;
           background-color: blue;
       }
   </style>

将display中的属性设为none,就可以使行内元素隐藏,在屏幕上是不显示的

盒模型

边框border

border-width

border-color

border-style

            border-style: outset;
            border-color: rgb(98, 190, 155);
            border-width: 20px;

当然,这三行可以写在一行里面:

            border: outset 20px greenyellow;

有时候会自带边框,所以要消除边框就可以让边框变为none

border:none

四个边框可以不一样

            border-top: outset 20px rgb(110, 172, 17);
            border-bottom: outset 20px rgb(175, 202, 135);
            border-left: outset 20px rgba(27, 233, 171, 0.315);
            border-right: outset 20px rgb(161, 211, 226);
image-20220405100030820

另外使用边框会撑大盒子,所以就会让盒子由300*300的变为340 340的,所以盒子就会变大

            box-sizing: border-box;

所以就可以加上这个关键字box-sizing来不让盒子变大

内边距padding

内边距是内容和边框之间的距离

一般来说,顶着内边框都是比较丑的,我们一般都是留有一点距离

padding-left padding-right padding-top padding-bottom

padding-left: 40px;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9l4qNsaU-1656758618918)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220405134030036.png)]

这样就会在左边留下一些距离

外边距margin

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z7bXGo8A-1656758618918)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220405133450624.png)]

就是盒子和盒子之间的距离就是外边距

margin: 40px 40px 40px 0px;
image-20220405133204949

这个之间就是外边距margin

块级元素水平居中

那我们的块级元素就可以使用margin来使得呈现水平居中的效果

让margin-left和margin-right的值是auto即可

margin:0 auto

去除浏览器和元素之间的空隙
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

浏览器默认是带有一些空隙的,使用上面的代码就可以去除之间的空隙

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sASbWClt-1656758618919)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220405213042184.png)]

另外,之后再对对象进行叠加样式的话,可以进行覆盖

弹性布局

布局一般都是一个元素独立一行,所以我们要是想要将元素都放到一行,就不太好操作

而弹性布局就是为了解决这个的

使用display:flex

这条语句就得加到flex-container上面(父元素上面),然后父元素包含的子元素就是flex-item

flex-direction:水平方向是主轴,竖着是侧轴,可以决定flex-item的排布方向,一般都是横着排列的

另外父元素只是决定子元素是flex式分布的,

子元素的子子元素也要想flex分布,那么子元素也要实现这个属性,可以嵌套使用

就可以让元素从单独占据一行,变成都在一行

image-20220405215258993
 <div class="total">
         <div class="parent">
        <div class="circle">
            <a href="3333">我的简历</a>
        </div>
        <div class="circle">
            <a href="3333">我的网页</a>
        </div>
        <div class="circle">
            <a href="3333">我的网页</a>
        </div>
    </div>
    <div class="picture">逆光之影</div>
</div>
   
    
    
    <style>
        .total {
            display: flex;
        }

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JTIrP2JN-1656758618919)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220405215348206.png)]

就可以让上面的两个元素的父亲,加上display:flex的操作

加上justify-content实现水平居中

justify-content:center;是实现了水平居中,前提是display:flex

元素之间的空格问题

space-around :使元素的上下左右都是有空格的

就可以使浏览器自动的加上一些空格,不会像上面那样紧紧的挨在一起了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UiSZBoQG-1656758618920)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220405215600910.png)]

space-between:只有元素之间有空格

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ztOmziDO-1656758618921)(C:/Users/19625/AppData/Roaming/Typora/typora-user-images/image-20220405221338996.png)]

space-start 使元素靠最左边

space-end使元素靠最右边

align-items实现垂直居中

上面我们的都是横轴上面的,我们还可以实现纵轴。使用align-item就可以实现纵轴上面的中央居中

使用center属性就可以:

 <div>
    <span>1 </span>
    <span>1 </span>
    <span>1 </span>
   </div>
   <style>
       div{
           width: 300px;
           height: 400px;
           border-width: 20px;
           border-color: burlywood;
           background-color: yellow;
           border-style: groove;
           display: flex;
           align-items: center;
       }
       div span {
           width:90px;
           background-color: aqua;
       }
   </style>

使用stretch

<div>
    <span>1 </span>
    <span>1 </span>
    <span>1 </span>
   </div>
   <style>
       div{
           width: 300px;
           height: 400px;
           border-width: 20px;
           border-color: burlywood;
           background-color: yellow;
           border-style: groove;
           display: flex;
           align-items: stretch;
       }
       div span {
           width:90px;
           background-color: aqua;
       }
   </style>

就会铺满整个父亲节点的长度

还有flex-end是在最下面,flex-start是在最上面

常用的就是上面的那几种属性的值了

overflow

在一个元素的css属性中加入这个就可以使浏览器滑动的时候,移动的是当前的元素内容

image-20220623191214242在这里插入图片描述

overflow:auto;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值