三十六、前端基础 CSS

一 CSS简介

CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素

  1. 语法结构:

    选择器 {

    ​ 属性名:属性值;

    ​ 属性名:属性值;

    }

  2. 注释语法

    /**/

  3. 三种编写CSS的方式

    1. head内的link标签引用外部CSS文件(推荐)
    2. head内的style标签直接编写CSS代码
    3. 直接在标签内部编写style属性

二 CSS选择器

2.1 基本选择器

  1. 标签选择器

    <style>
        div {
            color:red;
        }
    </style>
    
  2. id选择器

    <style>
            #d1 {
                color: red;
            }
    </style>
    
  3. 类选择器

    <style>
            .c {
                color: red;
            }
    </style>
    
  4. 通用选择器

    <style>
            * {
                color: red;
            }
    </style>
    

2.2 组合选择器

  1. 后代选择器

    两个选择器之间空格隔开,前面的选择器取到的标签内部所有符合空格后面的选择器要求的标签

    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            div span {
                color: red;
            }
        </style>
    </head>
    <body>
      <p id="3">p</p>
      <div>div
          <p id="5">div里的p
              <span id="d1">div里的p里的span</span>
          </p>
          <span id="2">div里的span</span>
      </div>
        <p id="4">p</p>
    </body>
    
  2. 儿子选择器

    两个选择器之间用 > 隔开,前面的选择器获取到的标签内部第一层符合 > 后边的选择器要求的标签

    <style>
            div>span {
                color: red;
            }
    </style>
    
  3. 毗邻选择器

    两个选择器之间用+号隔开,前面选择器获取的标签下面紧挨着的 + 号后的标签

    <style>
            div+p {
                color: red;
            }
    </style>
    
  4. 弟弟选择器

    查找前面标签同级别下的符合后面的所有标签

    <style>
            div~p {
                color: red;
            }
    </style>
    

2.3 属性选择器

所有的标签不仅有默认属性(id和class),还可以自定义属性(x,y)。

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*查找有name属性的并修改*/
        [name] {
            background-color: red;
        }
        /*查找有name属性并且属性值为p1的修改*/
        [name="p1"] {
            background-color: red;
        }
        /*查找span标签里由属性name的标签并且属性值为span1的标签修改*/
        span[name="span1"] {
            background-color: red;
        }
    </style>
</head>
<body>
  <div>div
      <p name="p1">div>p
          <span name="span1">div>p>span</span>
      </p>
      <span name="span2">div>span</span>
  </div>
    <p>p</p>
    <span name="123">span</span>
</body>

2.4 分组与嵌套

当多个选择器查找的标签需要调整为相同的样式,那么就可以合并

<style>
        [name=span1],span {
            background-color: red;
        }
</style>

合并的选择器彼此之间不干扰也没有类型的限制,还可以在选择器基础上添加额外的选择使得查找更精确。

2.5 伪类选择器

a标签默认的颜色有两种,紫色和蓝色,当浏览器从来没有访问过该地址就是蓝色,被访问过就是紫色。

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        a:hover {
            color: red;
        }
    </style>
</head>
<body>
<a href="https://www.4399.com">点我进4399</a>
</body>

当鼠标悬停到a标签上时,会产生变化。

2.6 伪元素选择器

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        /*给首字母设置特殊的样式*/
        p:first-letter {
            font-size: 50px;
            color: red;
        }
        /*后面插入内容*/
        p:after {
            content: "命运如同手中的掌纹,无论多曲折,终掌握在自己手中。";
            color: blueviolet;
        }
        /*前面插入内容*/
        p:before {
            content: "没有什么不可能,只看你去不去做。";
            color: chartreuse;
        }
    </style>
</head>
<body>
  <p> 穿透石头的水滴,它的力量来源于日积月累。</p>
</body>

2.7 选择器优先级

  1. 选择器相同,引入位置不同

    就近原则

  2. 选择器不同

    行内 > id选择器 > 类选择器 > 标签选择器 (精确度越高的优先级越高)

三 字体样式

3.1 宽和高

width属性可以为元素调整宽度。

height属性可以为元素调整高度。

块级标签才可以调整宽度,行内标签的高度由自身内容决定。

3.2 文字字体

font-family

body {
            font-family:  "微软雅黑", sans-serif;
        }

font-size 字体大小

p {
            font-size: 50px;
        }

font-weight 设置字体粗细

描述
normal 正常值
bold 粗体
bolder 更粗
lighter 更细
100~900 设置具体粗细
inherit 继承父类字体的粗细
p {
            font-size: 50px;
            font-weight: bolder;
        }

3.3 文本颜色

颜色属性被用来设置文字的颜色。

设置颜色的三种方式:

  1. 十六进制(#FF0000)
  2. rgb值(rgb(255,0,0))
  3. 颜色的名称(red)

rgba第四个值为alpha,指定色彩的透明度,范围在0.0~1.0之间

3.4 文字属性

文字对齐

text-align 规定元素中文本对齐方式

描述
left 左对齐,默认
right 右对齐
center 居中
justify 两端对齐

文字装饰

text-decorration 属性用来给文字添加特殊效果

描述
none 默认,没有任何装饰
underline 定义文本下的一条线
overline 定义文本上的一条线
line-through 定义穿过文本下的一条线
inherit 继承父类的属性

常用:为a标签去除下划线

首行缩进

p {
            text-indent: 32px;
        }

四 背景属性

<style>
        div {
            height: 400px;
            width: 400px;
            /*背景颜色*/
            /*background-color: gold;*/
            /*背景图片*/
            background-image: url("https://img1.baidu.com/it/u=3720572290,2769763744&fm=253&fmt=auto&app=138&f=JPEG?w=507&h=500");
            /*
            背景重复
            repeat:默认,背景图片平铺整个网页
            repeat-x:背景图片只在水平方向上平铺
            repeat-y:背景图片只在垂直方向上平铺
            no-repeat:背景图片不平铺
            */
            /*background-repeat: no-repeat;*/

            /*背景位置*/
            background-position: left top;
        }
    </style>


/*支持简写*/
background:#336699 url('1.png') no-repeat left top;

五 边框属性

<style>
        /*i {*/
        /*    border-width: 2px;*/
        /*    border-style: solid;*/
        /*    border-color: red;*/
        /*}*/

        /*简写*/
        i {
            border: 2px solid red;
        }
</style>

边框样式

描述
none 无边框
dotted 点状虚线边框
dashed 矩形虚线边框
solid 实线边框

还可以单独为每个边框设置样式

i {
            border-top: 2px solid yellow;
            border-right: 2px solid red;
            border-bottom: 2px solid blue;
            border-left: 2px solid salmon;
        }

border-radius

div {
            width: 500px;
            height: 500px;
            background: red;
            border-radius: 250px;
        }

六 display属性

用于控制HTML元素的显示效果

display:“none”

HTML文档中元素存在,但是在浏览器中不显示,一般用于配合JavaScript使用。

<body>
    <p><input type="text" style="display: none"></p>
    <p>password:<input type="password"></p>
    <p><input type="date" style="display: none"></p>
</body>

display:"none"与visibility:hidden的区别:

visibility:hidden: 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。

display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。

七 盒子模型

  • margin:用于控制元素与元素之间的距离
  • border(边框):围绕在内边距和内容外的边框
  • padding:用于控制内容与边框之间的距离
  • content:盒子的内容,显示文本和图像

在这里插入图片描述


掌握操作:

margin-top: 20px;
margin-right: 20px
margin-bottom: 20px
margin-left: 20px

body标签自带8px外边距

body {
	margin: 0;  /*作用与上下左右*/
	margin: 10px 10px;  /*上下 左右*/
	margin: 10px 10px 10px;  /*上 左右 下*/
	margin: 10px 10px 10px 10px;  /*上 右 下 左*/
}

margin还可以让内部标签居中展示

margin:100px auto;  /*仅限水平居中*/

八 浮动

在css中,任何元素都可以浮动。
浮动元素会生成一个块级框,而不论它本身是何种元素。
浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
浮动会造成父标签塌陷,解决方法是伪元素清楚法。

.clearfix:after {
	content: '';
	display: block;
	clear: both;
}
/*提前写好上述代码 约到塌陷的标签直接给标签加上属性名即可*/

浏览器针对文本是优先显示的。

九 溢出属性

描述
visible 默认值,内容不会被修剪,会呈现在元素框外
hidden 内容会被修剪,并且其余的内容不可见。
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余内容
auto 被修剪后以滚动条展示
inherit 规定应该从父元素继承overfull属性

圆形头像

div {
	height: 50px;
	width: 50px;
	border: 5px solid red;
	border-redius: 50%;
	overfull: hidden;
}

img {
	max-width: 100%;
}

十 定位

  1. static(静态):所有的标签都不能通过定位来修改位置。
  2. relative(相对定位):相对于标签原来的位置做定位。
  3. absolute(绝对定位):基于已经定位过的父标签做定位。
  4. fixed(固定定位):相对于浏览器的窗口做定位。

十一 z-index

浏览器其实是一个三维的坐标系,z轴指向用户。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340