CSS 扫盲

✏️作者:银河罐头
📋系列专栏:JavaEE

🌲“种一棵树最好的时间是十年前,其次是现在”

目录

  • 引入方式
    • 内部样式
    • 内联样式
    • 外部样式
  • CSS 选择器
  • CSS 常用属性值
    • 字体属性
      • 设置字体
      • 大小
      • 粗细
      • 文字样式
    • 文本属性
      • 文本颜色
      • 文本对齐
      • 文本装饰
      • 文本缩进
      • 行高
    • 背景属性
      • 背景颜色
      • 背景图片
    • 圆角矩形
  • 元素的显示模式
  • CSS 盒子模型
    • 边框
    • 内边距
    • 外边距
  • 弹性布局

引入方式

内部样式

CSS 基本语法规则:

选择器 + 若干属性说明

<body>
    <p>
        这是一个段落
    </p>
    <!-- style 标签可以放到代码的任意位置-->
    <style>
        p {
            color:red;
        }
    </style>
</body>

image-20230220161147296

image-20230220161559603

{ } 里的 CSS 属性是可以写一个或者多个,每个属性都是一个键值对,键和值之间用 :分割,键值对之间用 ;分割,每个键值对可以独占一行,也可以不独占一行。

实际上,有 3 种写 CSS 的方式。

1.内部样式:使用 style 标签,直接把 css 写到 html 文件的中的。此时的 style 标签可以放到任何位置,一般建议放到 head 标签里面。

上面的就是内部样式

内联样式

2.内联样式:使用 style 属性,针对指定的元素设置样式(此时不需要写选择器,直接写属性键值对)这个时候样式只是针对当前元素生效。

<body>
    <p style="color:red;font-size: 40px;">
        这是一个段落
    </p>
    <p>
        这是另一个段落
    </p>
</body>

image-20230220162929156

内联样式的优先级比内部样式高。

<style> 
        p {
            color: green;
        }
    </style>
</head>
<body>
    <p style="color:red;font-size: 40px;">
        这是一个段落
    </p>
    <p>
        这是另一个段落
    </p>
</body>

image-20230220163131021

外部样式

3.外部样式:把 css 代码单独作为一个.css 文件,再通过 link 属性让 html 引入该 css 文件

<link rel="stylesheet" href="style.css">
</head>
<body>
    <p>
        这是一个段落
    </p>
    <p>
        这是另一个段落
    </p>
</body>

image-20230220163438713

实际开发中,一般是使用 外部样式 来写 CSS 让 HTML 和 CSS 分离开,相互不影响.

当前阶段以内部样式为主,这样写简单方便

CSS 选择器

1.标签选择器

在 { 前面写标签名字,此时意味着会选中当前页面中所有的指定标签。

<body>
    <style>
        p {
            color: yellow;
            font-size: 40px;
        }
    </style>
    <p>
        这是一个段落
    </p>
    <p>
        这是另一个段落
    </p>
    <div>
        这是一个 div
    </div>
</body>

image-20230220164247315

把所有的 p 标签都设置成 黄色。

  • 如果想把 这些 p 标签设成不同颜色呢?

2.类选择器

更好的选择,可以创建 CSS 类手动指定哪些元素应用这个类。

此处只说的类和 Java 中的面向对象的类无关。CSS 所谓的类,就是把一组 CSS 属性起了个名字,方便别的地方引用。

<body>
    <style>
        /* 此处定义了一个 css 类, 类的名字叫做 one, 类的名字需要以 . 开头*/
        .one {
            color: red;
        }
        .two {
            color: green;
        }
        .three {
            color: blue;
        }
        .four {
            font-size: 40px;
        }
    </style>
    <div class="one four">
        这是第一个 div
    </div>
    <div class="one">
        这是第二个 div
    </div>
    <div class="three">
        这是第三个 div
    </div>
</body>

image-20230220165333744

一个类可以被一个元素引用,也可以被多个元素引用。

一个元素可以引用一个类,也可以引用多个类。

  • 层叠

CSS 中文名:层叠样式表。

一个元素是可以被应用多组样式的,这些样式就好像一层一层的叠加上去。

image-20230220170117821

第一个 div 应用的样式,这里有个font - size。

div 应用的另一个样式, color。

最终效果既有 font - size 又有 color,相当于叠加在一起了。

3.ID选择器

html 页面中的每个元素, 都是可以设置一个唯一的 ID 的作为元素的身份标识。给元素安排ID之后,就可以通过ID来选中对应的元素了。

	#oneDiv {
            color: red;
	}
</style>
<div id="oneDiv">
    这是一个 div
</div>
<div id="twoDiv">
    这是另一个 div
</div>

image-20230220170948444

类选择器,是可以让多个元素应用同一个类的。

ID选择器,则只能针对唯一的元素生效,因为页面里只能有唯一的ID.

上面三个选择器都属于简单的基础选择器,除此之外 CSS 还支持一些更复杂的选择器,复杂选择器就是把前面的基础选择器组合一下

4.后代选择器

把多个简单的基础选择器组合一下,可以是 标签,类,ID选择器 的任意组合。

        ul li {//含义就是先找页面中所有的 ul,然后在这些 ul 里再找所有的 li
            color: red;
        }
    </style>
    <ol>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
    </ol>
    <ul>
        <li>aaa</li>
        <li>bbb</li>
        <li>ccc</li>
    </ul>

image-20230220171535725

li,只要是 ul 的后代即可,不一定非得是 子元素

5.子选择器

也是把多个简单的基础选择器组合,标签、类、ID选择器任意组合。

只是找匹配的子元素。

/*选择器1 > 选择器2{
	属性
}
*/

.one>li {
	color: red;
}
        .one>a {
            color: red;
        }
    </style>
    <div class="one">
        <a href="#">链接1</a>
        <p>
            <a href="#">链接2</a>
        </p>
    </div>

image-20230220173009955

6.并集选择器

多种选择器,应用了同样的样式。

选择器一,选择器二{
	属性...
}
		.two, .three{
            font-size: 40px;
        }
    </style>
    <div class="one">
        <a href="#" class="two">链接1</a>
        <p>
            <a href="#" class="three">链接2</a>
        </p>
    </div>

image-20230220173803458

7.伪类选择器

复合选择器的特殊用法。

前面的选择器是选中某个元素,伪类选择器选中某个元素的某个特定状态。

:hover 鼠标悬停时候的状态

:active 鼠标按下时候的状态

		.one:hover {
            color: red;
            font-size: 100px;
        }
        .one:active {
            color: green;
            font-size: 200px;
        }
    </style>
    <div class="one">
        这是一个 div
    </div>

CSS 常用属性值

具体样式的设置。

样式涵盖很多方面的内容,包括不限于:大小,位置,颜色,形状,边距,边框,特殊滤镜,过渡效果,动画…

字体属性

设置字体

font - family 当前使用哪种字体来显示

		.one {
            font-size: 40px;
            font-family: '微软雅黑';
        }
        .two {
            font-size: 40px;
            font-family: '宋体';
        }
        .three {
            font-size: 40px;
            font-family: '黑体';
        }
        .four {
            font-size: 40px;
            font-family: '华文行楷';
        }
    </style>
    <div class="one">
        这是一个 div
    </div>
    <div class="two">
        这是一个 div
    </div>
    <div class="three">
        这是一个 div
    </div>
    <div class="four">
        这是一个 div
    </div>

image-20230220180123514

这个属性指定的字体必须要求是系统已经安装了的。

如果你要指定一些特殊的字体,搞个火星文字体。系统上没有则不能正确显示这种情况,一般是需要通过浏览器请求对应的服务器获取到指定字体文件,才能够设置。

大小

font - size

浏览器的每个文字都可以视为是一个方框,如果是英文阿拉伯数字方框比较窄,如果是中文一般就是一个正方形。

设置 font size=20px ,文字框高度是20px

如果拿着一个QQ截图测量一下文字的尺寸,可能发现实际的尺寸不一定是你设置的大小,如果不一样,注意你的浏览器的缩放设置和显示器的缩放设置

粗细

font - weight

实际设置值的时候,有两种典型的设置风格:

1.使用单词

2.使用数字

https://developer.mozilla.org/zh-CN/docs/Web/CSS/font-weight

image-20230220181520595

此时就可以把一个 div 设置成 h1 类似了,也可以把 h1 设置成 div 类似了。

文字样式

i 标签和 em 标签可以让文字倾斜。

font - style

		.one {
            font-size: 40px;
            font-family: '微软雅黑';
            font-weight: 900;
            font-style: italic;
        }
        .two {
            font-size: 40px;
            font-family: '宋体';
        }
        .three {
            font-size: 40px;
            font-family: '黑体';
        }
        .four {
            font-size: 40px;
            font-family: '华文行楷';
        }
        h1 {
            font-weight: 400;
            font-size: 18px;
        }
    </style>
    <div class="one">
        这是一个 div
    </div>
    <div class="two">
        这是一个 div
    </div>
    <div class="three">
        这是一个 div
    </div>
    <div class="four">
        这是一个 div
    </div>
    <h1>
        这是一个 h1
    </h1>

image-20230220182922368

文本属性

文本颜色

RGB

计算机中针对 R, G, B 三个分量, 分别使用一个字节表示(8个比特位, 表示的范围是 0-255, 十六进制表示 为 00-FF).

数值越大, 表示该分量的颜色就越浓. 255, 255, 255 就表示白色; 0, 0, 0 就表示黑色.

image-20230220182841367

此处的颜色还可以用 16 进制来表示

image-20230220224430217

还有一种缩写形式,如果每个分量它的16进制数字相同,,就可以把 6 位 16 进制数字缩写成 3 位16进制

image-20230220224631039

#ff0000 => #f00

颜色还可以用单词来表示。red, green, blue, orange, black, white…

不仅仅是 color 会遵守这套规则,其他的和颜色相关的属性,也是这样表示颜色的。

文本对齐

text-align: right;//右对齐
text-align: center;//居中

文本装饰

text-decoration: [值];

常用取值:

underline 下划线. [常用]

none 啥都没有. 可以给 a 标签去掉下划线.

overline 上划线. [不常用]

line-through 删除线 [不常用]

  • none 可以去掉默认的样式
		a {
            text-decoration: none;
        }
	</style>
    
    <a href="#">这是一个 a 标签</a>

image-20230220230137551

超链接自带下划线,而 none 可以去掉这个下划线。

文本缩进

每个段落,首行缩进 2 个文字。

text - indent

text-indent: 2em;

假设文字大小是 40 px,

1 em => 40 px;

2 em => 80 px;

文本缩进的值可以是 负数,往左缩进。

行高

行高 = 文字高度 + 行间距

image-20230221112020773

背景属性

背景颜色

background - color

背景图片

bakcground - image: url(图片路径);

当引入背景图片之后,默认情况下图片是平铺的。(就像铺瓷砖一样)

		.one {
            font-size: 40px;
            font-family: '微软雅黑';
            font-weight: 900;
            font-style: normal;
            color: #0f0;
            text-align: left;
            text-decoration: none;
            text-indent: -2em;
            line-height: 60px;
            /* background-color: rgb(0, 128, 0); */
            background-image: url(头像.jpg);
            height: 2000px;
        }
        a {
            text-decoration: none;
        }
    </style>
    <div class="one">
        这是一个 div <br>
        这是一个 div div Lorem ipsum dolor sit amet consectetur adipisicing elit. Similique aliquam ducimus corrupti, mollitia iste asperiores aut temporibus molestiae porro, cum eum, ipsa quod consectetur accusantium ad id dolorum autem qui!
    </div>
    <a href="#">这是一个 a 标签</a>

image-20230221112954597

如果不想平铺,使用

background - repeat: none;

image-20230221113218647

禁止平铺之后,发现图片出现在左上角,如果想要让图片居中?

background-position: center center;//水平居中,垂直居中
background-position: top center;//上中

还可以通过坐标来控制:

background-position: 10px 50px;

image-20230221113939222

image-20230221114114999

设置背景图的尺寸

background - size

contain: 尽量长

cover:尽量宽

圆角矩形

通过 border-radius 使边框带圆角效果.

border-radius: 10px;//内切圆半径是 10px,这个值越大,弧就越明显

image-20230221115730631

元素的显示模式

display

display: block; 块级元素

h1-h6, p, div, ul, ol, li

display: inline; 行内元素

u, b, span, i

任何一个 html 标签的显示模式(块级/行内)都是可以设置的。

  • 关于块级元素和行内元素的区别:

1.块级元素独占一行,行内元素不独占一行

2.块级元素高度,宽度,内外边距,都是可以设置的。行内元素,高度宽度行高 无效,内边距有效,外边距有时候有效有时候无效。

3.块级元素默认宽度是和父元素一样宽,而行内元素默认宽度是和里面的内容一样宽

块级元素比较正常,行内元素问题多。一般如果需要的话,都是把行内元素转换成块级元素

CSS 盒子模型

描述了 html 元素基本的布局规则。

image-20230221124524684

任何一个 HTML 元素(块级元素)都是一个矩形的盒子,盒子里面可以放内容(可以是文本,其他元素)

边框

border 属性,这是直接设置了 4 个方向。

还可以使用

border - left

border - right

border - top

border - bottom

分别设置 4 个方向。

设置边框要设置 3 个方面:

1.边框的粗细

2.边框的颜色

3.边框的风格(实线,虚线,其他的线…)

dashed 虚线

		.two {
            width: 200px;
            height: 100px;
            background-color: orange;
            color: #fff;
            text-align: center;
            line-height: 100px;
            border-radius: 10px;
            border: 5px  black solid;
        }
    </style>
    <div class="two">
        这是一个 div
    </div>

image-20230221125648513

image-20230221125901830

边框默认会撑大盒子,这里的 width 和 height 指的是内容的尺寸。

很多时候不希望撑大盒子,可能会影响元素和其他元素的相对位置。

还可以使用专门的属性,防止盒子被撑大

box-sizing: border-box;

设置了该属性,此时边框就不会撑大盒子了。

内边距

padding 指的是内容和边框之间的距离。

padding: 10px;表示 4 个方向都是 10px
padding: 10px 20px;//上下边距是 10px,左右边距是 20px
padding: 10px 20px 30px 40px;//上右下左(顺时针)

外边距

设置的是元素和元素之间的距离

margin 的写法和 padding 差不多,也是可以分四个方向来设置

margin: 10px;表示 4 个方向都是 10px
margin: 10px 20px;//上下外边距是 10px,左右外边距是 20px
margin: 10px 20px 30px 40px;//上右下左(顺时针)

margin 特殊用法:把 margin - left 和 margin - right 设置为 auto,让浏览器自动调节,此时该元素就能够在父元素内部居中放置。(水平方向上有效)

通过 边框,内边距,外边距 这几个属性就可以控制元素之间/元素和内容之间相对位置。

弹性布局

弹性布局可以解决"水平方向排列"问题。

用来实现页面布局的。

行内元素虽然是在水平方向排列的,但是不适合进行水平布局。因为尺寸边距啥的不太可控。使用弹性布局是更合适的。

行内块元素可以设置尺寸,边距也生效,但是默认不独占一行。

行内块元素和行内元素一样,都会把源码中的换行当成一个空格,也会对页面元素布局产生不必要的影响。

1.开启弹性布局

display: flex;

给要水平排列的元素的父元素设置 flex.

此时,弹性容器里面的元素则不再是"块级",“行内元素”,而是成为了"弹性元素",是遵守弹性布局的。可以设置尺寸和边距。

2.设置这些元素的水平方向的排列方式。

justify-content: flex-start;
justify-content: flex-end;
justify-content: center;
justify-content: space-around;
justify-content:
		div {
            width: 100%;
            height: 150px;
            background-color: red;
            display: flex;
            justify-content: space-between;
        }
        div>span {
            background-color: green;
            width: 100px;
        }
    </style>
    <div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
        <span>4</span>
        <span>5</span>
    </div>

image-20230221151630539

如图为 justify-content: space-around;

3.设置这些元素的垂直方向的排列方式。

align-items: flex-end;
align-items: center;
		div {
            width: 100%;
            height: 150px;
            background-color: red;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        div>span {
            background-color: green;
            width: 100px;
            height: 100px;
        }
    </style>
    <div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
        <span>4</span>
        <span>5</span>
    </div>

image-20230221152047062

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/8156.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Jmeter进行http接口测试

前言&#xff1a; 本文主要针对http接口进行测试&#xff0c;使用Jmeter工具实现。 Jmter工具设计之初是用于做性能测试的&#xff0c;它在实现对各种接口的调用方面已经做的比较成熟&#xff0c;因此&#xff0c;本次直接使用Jmeter工具来完成对Http接口的测试。 一、开发接口…

【Unity项目实战】从零手戳一个背包系统

首先我们下载我们的人物和背景资源,因为主要是背包系统,所以人物的移动和场景的搭建这里我们就不多讲了,我这里直接提供基础项目源码给大家去使用就行 基础项目下载地址: 链接: https://pan.baidu.com/s/1o7_RW_QQ1rrAbDzT69ApRw 提取码: 8s95 顺带说一下,这里用到了uni…

uniCloud开发api接口服务

首先创建一个云对象&#xff1a; 在创建的云对象的index.Obj.js中进行编码&#xff1a; const db uniCloud.database() module.exports {_before: function () { // 通用预处理器},async get(){//demo-user 是云数据中的一个表名let res await db.collection("demo-us…

最易学和最难学编程语言排行榜!

如果问一个程序员最容易学习的语言&#xff0c;就像问一个人他们最喜欢的冰淇淋。每个人都有自己的偏好&#xff0c;永远没有真正的正确答案。 正如开发者和教育家 Marek Zaluski 曾经说的那样&#xff0c;"编程语言是由程序员创造的&#xff0c;为程序员服务"。这几…

Hashtable是什么?它和Hashmap有什么区别?

博主简介&#xff1a;努力的打工人一枚博主主页&#xff1a;xyk:所属专栏: JavaEE初阶目录 一、什么是Hashtable&#xff1f; 二、Hashtable特点 2.1 Hashtable是怎么加锁的&#xff1f; 2.2Hashtable为什么不允许键值为null&#xff1f; 2.3Hashtable为什么线程安全&…

电动汽车热管理方案

热管理技术作为汽车节能、提高经济性和保障安全性的重要措施&#xff0c;在汽车研发过程中具有重要作用。传统燃油汽车的热管理系统主要包括发动机、变速器散热系统和汽车空调&#xff0c;而电动汽车的热管理系统在燃油汽车热管理架构的基础之上&#xff0c;又增加了电机电控热…

Docker实现MySQL8主从读写分离【超简洁】

1、首先拉取镜像 docker pull mysql 2、创建主库容器 docker run -p 3388:3306 --name master -e MYSQL_ROOT_PASSWORD123456 -d mysql --server-id1 --log-binbin-log --binlog-do-dbznzm-dlaq 说明&#xff1a; docker run 表示创建并运行容器-p 3388:3306 把宿主机的…

【SQL开发实战技巧】系列(四十):Oracle12C常用新特性☞可以在同样的列(列组合)上创建多个索引以及可以对DDL操作进行日志记录

系列文章目录 【SQL开发实战技巧】系列&#xff08;一&#xff09;:关于SQL不得不说的那些事 【SQL开发实战技巧】系列&#xff08;二&#xff09;&#xff1a;简单单表查询 【SQL开发实战技巧】系列&#xff08;三&#xff09;&#xff1a;SQL排序的那些事 【SQL开发实战技巧…

软件测试岗,4 轮面试成功拿下字节 Offer..........

一共经历了四轮面试&#xff1a;技术4面&#xff0b;HR面。 特整理出所涉及的全部知识点&#xff0c;并复盘了完整面试题及答案&#xff0c;分享给大家&#xff0c;希望能够帮到一些计划面试字节的朋友。 一、测试基础理论类 怎么编写案例?软件测试的两种方法测试结束的标准…

python好玩的短代码

Python语言是一种流行的编程语言&#xff0c;在 Python语言中有很多有趣的特性&#xff0c;比如&#xff1a; 1.变量可以定义为字符串&#xff0c;也可以定义为字符串对象 2.变量可以用来初始化一个函数或模块&#xff0c;函数或者模块可以定义成一个类&#xff0c;这个类被称为…

不负期待,载誉收官 | 迅镭激光2023ITES深圳展圆满落幕!

4月1日&#xff0c;历时4天的2023 ITES深圳工业展在深圳国际会展中心圆满收官!本届展会聚焦“金属切削机床、金属成形机床、核心工业技术、机器人及自动化设备、智能物流、工业零件”六大产业集群&#xff0c;云集1295家参展企业&#xff0c;品牌阵容高端先进、丰富多元&#x…

轻轻松松编译 Jmeter 源码,再也不求人

Jmeter工具&#xff0c;大家在做接口测试、自动化测试&#xff0c;都是经常会用到的&#xff0c;甚至在做性能测试时&#xff0c;是首选工具。Jmeter本身是用java语言编写的开源的工具&#xff0c;在jmeter.apache.org官网上&#xff0c;可以下载。 但是&#xff0c;也耐不住那…

Leetcode.130 被围绕的区域

题目链接 Leetcode.130 被围绕的区域 mid 题目描述 给你一个 m x n的矩阵 board&#xff0c;由若干字符 X和 O&#xff0c;找到所有被 X围绕的区域&#xff0c;并将这些区域里所有的 O用 X填充。 示例 1&#xff1a; 输入&#xff1a;board [[“X”,“X”,“X”,“X”],[“X…

继承(C++)

继承继承的概念及定义继承的概念继承的定义定义格式继承关系和访问限定符继承基类成员访问方式的变化基类和派生类对象赋值转换继承中的作用域派生类的默认成员函数继承与友元继承与静态成员复杂的菱形继承及菱形虚拟继承虚拟继承的原理继承的概念及定义 继承的概念 继承是面…

Spring-aop面向切面

1、理解必要的专业术语 先看看上面图&#xff0c;这是我的个人理解。(画的丑&#xff0c;主打真实) 1&#xff09;Advice&#xff0c;通知/增强&#xff1a;类方法中提出来的共性功能(大白话就是提出来的重复代码) 2&#xff09;Pointcut&#xff0c;切入点/切点&#…

Tomcat使用https配置实战

一、tomcat证书配置 首先&#xff0c;要实现https&#xff0c;就必须先具有tomcat证书。我们在安装tomcat的时候&#xff0c;肯定都先安装了JAVA&#xff0c;而JAVA中有自带的证书生成工具keytool&#xff0c;今天&#xff0c;我们就使用keytool来生成tomcat的证书。 执行命令…

chatGPT中国入口-ChatGPT评论文章-ChatGPT怎么用

国内怎么玩chatGPT 如果您在国内使用ChatGPT&#xff0c;主要的问题可能是连接OpenAI服务器的速度和稳定性。由于OpenAI位于美国&#xff0c;可能受到中国的网络限制和防火墙的影响&#xff0c;造成访问速度比较慢或不稳定。为了解决这个问题&#xff0c;您可以采取以下方法&a…

多线程冲突处理方法,锁

线程之间是可以共享进程的资源&#xff0c;比如代码段、堆空间、数据段、打开的文件等资源&#xff0c;但每个线程都有自己独立的栈空间。 那么问题就来了&#xff0c;多个线程如果竞争共享资源&#xff0c;如果不采取有效的措施&#xff0c;则会造成共享数据的混乱。 我们做…

首届“兴智杯”产业赛收官,文心大模型助推产业创新

由工业和信息化部、科学技术部、深圳市人民政府共同主办&#xff0c;中国信通院等单位承办的首届“兴智杯”全国人工智能创新应用大赛圆满收官。本次大赛受到国家部委、政府机构、科技企业、高校师生等社会各界密切关注。为了进一步激发创新活力&#xff0c;促进人工智能核心技…

量化注意事项和模型设计思想

量化的注意事项 1、量化检测器时&#xff0c;尽量不要对Detect Head进行量化&#xff0c;一旦进行量化可能会引起比较大的量化误差&#xff1b; 2、量化模型时&#xff0c;模型的First&Second Layer也尽可能不进行量化&#xff08;精度损失具有随机性&#xff09;&#xf…
最新文章