CSS 基础语法

x33g5p2x  于2022-02-07 转载在 CSS3  
字(8.6k)|赞(0)|评价(0)|浏览(299)

前言: 之前我们写了 Html 的部分简单标签,本篇,我们将学习 CSS 的基础语法

CSS 简介

1.什么是CSS??

CSS: 层叠样式表 (Cascading Style Sheet)
是一组样式设置的规则,用于控制页面的外观样式,实现美化页面的效果,能够做到页面的样式和结
构分离

2.CSS 的作用

  • 实现内容与样式的分离,便于团队开发
  • 样式复用,便于网站的后期维护
  • 能够对网页中元素位置的排版进行像素级精确控制,让页面更精美

基本语法规范

选择器 + {
一条 / N条声明
}

  • 选择器决定针对谁修改 (找谁)
  • 声明决定修改啥 (干啥)
  • 声明的属性是键值对,使用 ;区分键值对,使用 :区分键和值.
<style>
    p {
        /* 设置字体颜色 */
        color: red;
        /* 设置字体大小 */
        font-size: 30px;
   }
</style>

<p>hello</p>

引入方式

1.内部样式表

写在 style 标签中,嵌入到 html 内部.
理论上来说 style 放到 html 的哪里都行;但是一般都是放到 head 标签中

<head>
    <title>style标签内联式 定义CSS</title>
    <style>
        p {
            /* 设置文本颜色 */
            color: chocolate;
            /* 设置文本大小 */
            font-size: 30px;
        }
    </style>
</head>

<body>
    <p>p标签内容</p>
</body>

优点缺点
这样做能够让样式和页面结构分离分离的还不够彻底. 尤其是 css 内容多的时候

2.行内样式表

通过 style 属性,来指定某个标签的样式
只适合于写简单样式,只针对某个标签生效

<head>
    <title>Html的标签元素中使用 style 属性</title>
    <style>
        p {
            /* 设置文本颜色 */
            color: chocolate;
            /* 设置文本大小 */
            font-size: 30px;
        }
    </style>
</head>

<body>
    <p style="color: blue; font-size: 30px;">p标签内容</p>
</body>

这种写法优先级较高,会覆盖其他的样式:

优点缺点
只适合于写简单样式,只针对某个标签生效不能写太复杂的样式. 这种写法优先级较高, 会覆盖其他的样式

3.外部样式

实际开发中最常用的方式:

  1. 创建一个 css 文件.
  2. 使用 link 标签引入 css
    < link rel=“stylesheet” href="[CSS文件路径]">

1.创建 css 文件:

p {
    color: red;
    font-size: 30px;
}

2.使用 link 标签:

<head>
    <title>引入外部CSS文件</title>
    <link rel="stylesheet" href="3.引入的CSS文件.css">
</head>

<body>
    <p>p标签内容</p>
</body>

优点缺点
样式和结构彻底分离受到浏览器缓存影响, 修改之后 不一定 立刻生效

浏览器缓存:
网络访问一些静态的资源 (内容不会变化的文件,如 html 文件,css 文件,js 文件等),浏览器为了提高性能,就提前缓存这些内容到磁盘上,下次访问发现访问的还是不会变的内容,就直接从本地获取,从而提高访问效率
使用 ctrl + F5 强制刷新,强制浏览器重新获取 css 文件

CSS 选择器

CSS 选择器详解 - 点击跳转

CSS 选择器详解

CSS 常用属性

字体属性

设置字体

<head>
    <title>设置字体</title>
    <style>
        #s1 {
            font-family: 'Microsoft YaHei';
        }
        #s2 {
            font-family: '宋体';
        }
    </style>
</head>

<body>
    <span id="s1">
        微软雅黑
    </span>
    <span id="s2">
        宋体
    </span>
</body>

注意事项:

  • 字体名称可以用中文,但是不建议
  • 多个字体之间使用逗号分隔 (从左到右查找字体,如果都找不到,会使用默认字体)
  • 如果字体名有空格,使用引号包裹
  • 建议使用常见字体,否则兼容性不好
    浏览器和系统不支持的字体,写了也不会生效

字体大小 & 字体粗细

字体大小

<head>
    <title>字体大小</title>
    <style>
        #s1 {
            /* 字体设置 */
            font-family: 'Microsoft YaHei';
            /* 字体大小 */
            font-size: 40px;
        }
        #s2 {
            font-family: '宋体';
            font-size: 20px;
        }
    </style>
</head>

<body>
    <span id="s1">
        微软雅黑
    </span>
    <span id="s2">
        宋体
    </span>
</body>

注意事项:

  • 不同的浏览器默认字号不一样,最好给一个明确值. (chrome 默认是 16px)
  • 可以给 body 标签使用 font-size
  • 要注意单位 px 不要忘记.
  • 标题标签需要单独指定大小

字体粗细

<head>
    <title>字体粗细</title>
    <style>
        #s1 {
            /* 字体设置 */
            font-family: 'Microsoft YaHei';
            /* 字体大小 */
            font-size: 40px;
            /* 字体粗细 */
            font-weight: 100;
        }
        #s2 {
            font-family: '宋体';
            font-size: 30px;
            font-weight: 900;
        }
    </style>
</head>

<body>
    <span id="s1">
        微软雅黑
    </span>
    <span id="s2">
        宋体
    </span>
</body>

注意事项:

  • 可以使用数字表示粗细.
  • 700 = bold, 400 = normal,表示不加粗
  • 取值范围是 100 -> 900,数字越大,字体越粗

字体样式

设置倾斜: font-style: italic;
取消倾斜: font-style: normal;

<head>
    <title>文字样式</title>
    <style>
        #s1 {
            /* 字体设置 */
            font-family: 'Microsoft YaHei';
            /* 字体大小 */
            font-size: 40px;
            /* 字体粗细 */
            font-weight: 100;
            /* 文本样式 */
            font-style: italic;
        }
        #s2 {
            font-family: '宋体';
            font-size: 30px;
            font-weight: 900;
        }
    </style>
</head>

<body>
    <span id="s1">
        微软雅黑
    </span>
    <span id="s2">
        宋体
    </span>
</body>

文本属性

文本颜色

设置文本颜色:
color: red;
color: #ff0000;
color: rgb(255, 0, 0);
.

鼠标悬停在 vscode 的颜色上,会出现颜色选择器,可以手动调整颜色

color 属性值的写法:

  • 预定义的颜色值(直接是单词)
  • 十六进制形式 (最常用) ;如果两两相同,就可以用一个来表示:#ff00ff => #f0f
  • RGB 方式;rgb(0,0,0) — 黑色;rgb(255,255,255) — 白色

文本对齐

控制文字水平方向的对齐.
不光能控制文本对齐,也能控制图片等元素居中或者靠右

  • center: 居中对齐
  • left: 左对齐
  • right: 右对齐

举例:

<head>
    <title>文本对齐</title>
    <style>
        #d1 {
            text-align: left;
        }
        #d2 {
            text-align: center;
        }
        #d3 {
            text-align: right;
        }
    </style>
</head>

<body>
    <div id="d1">靠左</div>
    <div id="d2">居中</div>
    <div id="d3">靠右</div>
</body>

文本装饰

语法:
text-decoration: [值];

常用取值:

  • underline 下划线. [常用]
  • none 啥都没有. 可以给 a 标签去掉下划线.
  • overline 上划线. [不常用]
  • line-through 删除线 [不常用]

举例:

<head>
    <title>文本装饰</title>
</head>

<body>
    <div>
        <p style="text-decoration: none;">啥都没有</p>
        <p style="text-decoration: overline;">上划线</p>
        <p style="text-decoration: line-through">删除线</p>
        <p style="text-decoration: underline;">下划线</p>
    </div>
</body>

文本缩进 & 行高

  1. 缩进:

控制段落的 首行 缩进 (其他行不影响)
text-indent: [值];

举例:

<body>
    <p style="text-indent: 2em;">首行向右缩进2个文字</p>
    <p style="text-indent: -2em;">首行向左缩进2个文字</p>
</body>

注意事项

  • 单位可以使用 px 或者 em.
  • 使用 em 作为单位更好. 1 个 em 就是当前元素的文字大小.
  • 缩进可以是负的,表示往左缩进.
  1. 行高

行高指的是上下文本行之间的基线距离
line-height: [值];

注意事项

  • 行高 = 上边距 + 下边距 + 字体大小
  • 行高也可以取 normal 等值
  • 行高等与元素高度,就可以实现文字居中对齐

举例:

<body>
    <div style="  line-height: 40px; font-size: 30px;">行高效果:</div>
    <div style="  line-height: 40px; font-size: 30px;">行高效果:</div>
</body>

背景属性

背景颜色

默认是 transparent (透明) 的,可以通过设置颜色的方式修改
background-color: [指定颜色]

举例:

<body>
    <div style="width: 500px; height: 100px;  background-color: palevioletred"></div>
</body>

背景图片 & 背景平铺

  1. 背景图片

比 image 更方便控制位置(图片在盒子中的位置)
background-image: url(…);

举例:

<body>
    <div style="width: 220px; height: 220px; background-image: url('rose.jpg'); "></div>
</body>

注意事项

  • url 不要遗漏.
  • url 可以是绝对路径,也可以是相对路径
  • url 上可以加引号,也可以不加.
  1. 背景平铺
    background-repeat: [平铺方式]

**重要取值:**默认是 repeat

  • repeat: 平铺
  • no-repeat: 不平铺
  • repeat-x: 水平平铺
  • repeat-y: 垂直平铺

背景颜色和背景图片可以同时存在. 背景图片在背景颜色的上方

举例:

<head>
    <title>背景平铺</title>
    <style>
        .number .one {
            background-image: url(rose.jpg);
            height: 220px;
            background-repeat: no-repeat;
       }
        .number .two {
            background-image: url(rose.jpg);
            height: 220px;
            background-repeat: repeat-x;
       }
        .number .three {
            background-image: url(rose.jpg);
            height: 800px;
            background-repeat: repeat-y;
       }
    </style>
</head>

<body>
    <div class="number">
        <div class="one">不平铺</div>
        <div class="two">水平平铺</div>
        <div class="three">垂直平铺</div>
    </div>
</body>

背景位置 & 背景尺寸

  1. 背景位置

修改图片的位置
background-position: x y;

参数风格:

  • 方位名词: (top,left,right,bottom)
  • 精确单位: 坐标或者百分比 (以左上角为原点)
  • 混合单位: 同时包含方位名词和精确单位

举例:

<head>
    <title>背景位置</title>
    <style>
        .tmp .one {
            background-image: url(rose.jpg);
            height: 500px;
            background-repeat: no-repeat;
            background-color: rgb(104, 187, 176);
            background-position: left;
       }
    </style>
</head>

<body>
    <div class="tmp">
        <div class="one">背景靠左</div>
    </div>
</body>

注意事项

  • 如果参数的两个值都是方位名词,则前后顺序无关 (top left 和 left top 等效)
  • 如果只指定了一个方位名词,则第二个默认居中 (left 则意味着水平居中,top 意味着垂直居中. )
  • 如果参数是精确值,则的的第一个肯定是 x,第二个肯定是 y (100 200 意味着 x 为 100,y 为 200)
  • 如果参数是精确值,且只给了一个数值,则该数值一定是 x 坐标,另一个默认垂直居中.
  • 如果参数是混合单位,则第一个值一定为 x,第二个值为 y 坐标 (100 center 表示横坐标为 100,垂
    直居中)
  • 计算机中的平面坐标系,一般是左手坐标系(y轴是往下指的)
  1. 背景尺寸
    background-size: length | percentage | cover | contain;

①可以填具体的数值: 如 40px 60px 表示宽度为 40px,高度为 60px,也可以填百分比: 按照父元素的尺寸设置.
②cover: 把背景图像扩展至足够大,以使背景图像完全覆盖背景区域;背景图像的某些部分也许无法显示在背景定位区域中
③把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域

举例:

<head>
    <title>背景尺寸</title>
    <style>
        .tmp .one {
            width: 500px;
            height: 300px;

            background-image: url(rose.jpg);
            background-repeat: no-repeat;
            background-color: rgb(104, 187, 176);
            background-position: center;
            background-size: contain;
       }
    </style>
</head>

<body>
    <div class="tmp">
        <div class="one">背景尺寸-contain</div>
    </div>
</body>
  • contain:

  • cover:

圆角矩形

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

基本用法
border-radius: length;
length 是内切圆的半径,数值越大,弧线越强烈

举例:

<head>
    <title>基本用法</title>
    <style>
        #d1 {
            width: 300px;
            height: 200px;
            border: 2px solid red;
            border-radius: 10px;
        }
    </style>
</head>

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

生成圆形

让 border-radius 的值为正方形宽度的一半即可
一般建议写 %50 更好

<head>
    <title>生成圆形</title>
    <style>
        #circular {
            width: 200px;
            height: 200px;
            border: 2px solid red;
            border-radius: 100px;
        }
    </style>
</head>

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

生成圆角矩形

让 border-radius 的值为矩形高度的一半即可

<head>
    <title>圆角矩形</title>
    <style>
        #d2 {
            width: 300px;
            height: 200px;
            border: 2px solid red;
            border-radius: 100px;
        }
    </style>
</head>

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

展开写法

border-radius 是一个复合写法,实际上可以针对四个角分别设置
border-radius:2em;
.
等价于
.
左上→右上→右下→左下
border-top-left-radius:2em;
border-top-right-radius:2em;
border-bottom-right-radius:2em;
border-bottom-left-radius:2em;
.
border-radius: 10px 20px 30px 40px;

块级元素 & 行内元素

块级元素

常见元素:
h1 - h6
p
div
ul
ol
li

特点:

  • 独占一行
  • 高度, 宽度, 内外边距, 行高都可以控制.
  • 宽度默认是父级元素宽度的 100% (和父元素一样宽)
  • 是一个容器(盒子), 里面可以放行内和块级元素

注意:

  • 文字类的元素内不能使用块级元素
  • p 标签主要用于存放文字, 内部不能放块级元素, 尤其是 div

行内元素
常见元素:
a
strong
b
em
i
del
s
ins
u
span

特点:

  • 不独占一行,一行可以显示多个
  • 设置高度,宽度,高无效
  • 左右外边距有效(上下无效). 内边距有效.
  • 默认宽度就是本身的内容
  • 行内元素只能容纳文本和其他行内元素,能放块级元素

注意:

  • a 标签中不能再放 a 标签 (虽然 chrome 不报错,但是最好不要这么做).
  • a 标签里可以放块级元素,但是更建议先把 a 转换成块级元素

二者区别

①块级元素独占一行, 行内元素不独占一行
②块级元素可以设置宽高, 行内元素不能设置宽高.
③块级元素四个方向都能设置内外边距, 行内元素垂直方向不能设置

相关文章