前端---css样式补充

伪元素选择器和选择器优先级


伪元素选择器通过css操作文本内容。

1.修改首个字体样式

p:first-letter {
            color: red;
            font-size: 48px;
        }

2.在文本开头添加内容

p:before {
            content: '哈哈';
            color: blue;
        }

3.在文本结尾添加内容

p:after {
            content: '嘿嘿';
            color: yellow;
        }

选择器优先级

相同选择器:'就近原则':谁离标签越近就听谁的!!!

不同选择器:行内选择器 > id选择器 > 类选择器 > 标签选择器

CSS选择器是所有选择器的基础,后期框架提供的、后期爬虫模块提供的。

img

字体样式


文字字体

p { font-family: "Microsoft Yahei"}

字体大小

p {font-size: 24px}

字体粗细

p {font-weight: lighter\bolder}

字体颜色

p {color: red;}
p {color: rgb(128, 128, 128);}
p {color: #4f4f4f;}

获取颜色的方式:截图软件自带取色功能,pycharm提供的取色器。

img

文字属性


文字对齐

p {text-align:left}    左边
p {text-align:center}  中间
p {text-align:right}   右边

文字装饰(重点)

a {text-decoration: none;}  主要就是用于去除a标签的下划线
a {text-decoration: line-through;}  删除线
a {text-decoration: overline;}  上边线
a {text-decoration: underline;}  下划线

首行缩进

p {text-indent: 32px;}  首行缩进32px

补充:可以使用浏览器做样式的动态调整,查找到标签的css,然后左键选中,通过方向键上下动态修改数值,找到适合的数值填写到css样式里。

背景属性


背景颜色

p {background-color: red;}  

背景图片

img {background-image:url("111.png");}   背景图片如果没有设置的区域大,
那么默认自动填充满
img {background-repeat:no-repeat\repeat-x\repeat-y;}  是否平铺
img {background-position:left top;}  图片位置
img {background-attachment: fixed;}  背景附着

如果多个属性名具有相同的前缀,那么可以整合到一起编写(前缀名即可)。

img {background:#336699 url('1.png') no-repeat left top;}

img

边框


自定义调整每个边的边框

p {border-left/top/right/bottom-color: black;}  给边框修改颜色
p {border-left/top/right/bottom-width: 5px;}  修改边框的粗细
p {border-left/top/right/bottom-style: solid;}  修改边框的类型, dotted点状虚线边框,dashed矩形虚线边框,solid实线边框

统一调整每个边的边框

p {border: 5px solid black;}  顺序无所谓,只要给了三个就行

画圆

p {border-radius: 50%}   如果长宽一样那么就是圆,不一样就是椭圆

display属性


前戏:只要块儿级标签可以设置长宽,行内标签是不可以的。

display:inline  让标签具备行内标签的特性(不能设置长宽)
display:block   让标签具备块儿级标签的特性(可以设置长宽)
display:inline-block  使元素同时具有行内元素和块级元素的特点
display:none    隐藏标签(重点)  页面上不会保留位置也不显示
visibility:hidde  也是隐藏标签 但是位置会保留

盒子模型


所有的标签其实都有一个盒子模型,学习盒子模型可以将标签看成是一个个快递盒。

快递盒子 盒子模型
内部物品 content(内容)
内部物品与盒子内部的距离 padding(内边距、内填充)
盒子的厚度 border(边框)
盒子与盒子之间的距离 margin(外边距)

ps:两个标签之间的距离,有时候可以用margin也可以用padding。

body标签默认自带8px的margin值 我们在编写页面之前应该去掉。

body {margin-left: 0;
      margin-top: 0;
      margin-right: 0;
      margin-bottom: 0;
} 

margin不同个数的参数对应修改的位置

参数个数显示 修改的位置
margin: 1px 2px 3px 4px 上 右 下 左
margin: 1px 2px 3px 上 左右 下
margin: 1px 1px 上下 左右
margin: 1px 统一设置一个值

ps:padding用法与margin一致。

盒子模型页面布局,想要标签的水平居中,可以使用固定搭配。

body {margin: 0 auto;}

img

浮动(重要)


浮动的作用

div {float: left/right;}

浮动是所有网站页面布局必备的,可以将块儿级标签浮动起来脱离正常的文档流。是多个块儿级标签可以在一行显示(全部飘在了空中)。

浮动的影响

1.浮动会造成父标签塌陷(类似于将口袋里面的东西拿到了口袋的外面)

2.浮动的元素有时候也会遮挡住底下的区域,如果区域内有文本内容,那么浏览器会遵循文本内容优先展示的原则,会想法设法让文本展示出来。

解决浮动造成的影响

方法1:直接写div然后写对应的长宽。

方法2:写div然后添加clear属性,避免去查找长宽。

div {clear: left; }  原理就是让左边的元素沉下去,然后右边的元素会挨着前面的元素飘起了这样的感觉

方法3:万能公式(固定搭配 记住就可以)

.clearfix:after {
            content: '';
            clear: both;
            display: block;
        }
以后写网页,提前写好上面的代码,然后哪个标签塌陷了就给谁添加上clearfix类名即可。

作业


1.制作简易版本圆形头像
2.利用浮动搭建一个28布局的页面
整个浏览器页面封为左右两块 左边一块占比20% 右边一块占比80%

代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        body {
            margin: 0 auto
        }
        #head {
            height: 180px;
            background: aliceblue;
            padding-top: 25px;
        }
        #photo {
            width: 150px;
            height: 150px;
            border: 1px solid black;
            margin: 0 auto;
            border-radius: 50%;
            background:url("11.jpg") no-repeat  100%;
        }
        #body {
            height: 540px;
        }
        #left {
            height: 100%;
            width: 20%;
            background: antiquewhite;
            float: left;
        }
        #right {
            height: 100%;
            width: 80%;
            background: royalblue;
            float: left;
        }
        p {
            text-align: center;
            font-size: 30px;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div id="head">
         <div id="photo"></div>
    </div>
    <div id="body" >
        <div id="left" ><p>左边内容20%</p></div>
        <div id="right"><p>右边内容80%</p></div>
    </div>
</body>
</html>

效果展示

posted @ 2022-04-26 21:21  早安_1207  阅读(49)  评论(0)    收藏  举报
返回顶端