了解CSS

基本语法规范


选择器 + {一条/N条声明}
选择器决定针对谁修改 (找谁)
声明决定修改啥
声明的属性是键值对,使用 “;’” 区分键值对, 使用 “:” 区分键和值

CSS不区分大小写

/*       CSS的注释只有这一种形式       */

<style>
p {
/* 设置字体颜色 */
color: red;
/* 设置字体大小 */
font-size: 30px;
}
</style>
<p>hello</p>

引入方式


内部样式表

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

    <div>这是红色</div>
    <p style="color : orange">这是橙色</p>

 

行内样式表

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

<style>
div {
color: red;
}
</style>
<div style="color:green">这是绿色</div>
<div >这是绿色</div>

 red被覆盖了

外部样式

实际开发中最常用的方式.
1. 创建一个 css 文件
2. 使用 link 标签引入 css [快捷键 link:css + Tab]

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="CSS/style.css">
</head>
<body>
    <div>这是红色</div>
</body>

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

如果三种引入方式的规则冲突了,以谁为准?

  1. 内联样式是具体作用到一个具体元素上的,所以优先级最高。
  2. 内部。外部样式看先后顺序,后出现的覆盖先出现的。

选择器

选择器规则

除了用在CSS上,还可以用在JS选择元素上。

选择器的种类

基础选择器: 单个选择器构成的

  1. 标签选择器   p { ... }
  2. 类选择器  .red { ... }  通过类选择器可以选出多个元素
  3. id 选择器  #ha { color: red; }  选中id为ha的元素 id 是唯一的 不能被多个标签使用
  4. 通配符选择器  * { ... }  页面的所有内容都会被改成红色,不需要被页面结构调用

选择器之间的优先级规则

选择越精确的,优先级越高。

 同样优先级的情况下,谁出现在上面,谁被覆盖。

复合选择器: 把多种基础选择器综合运用起来.

后代选择器  元素1  元素2 { ... }

子选择器   元素1 > 元素2 { ... }

并集选择器  元素1, 元素2 { ... }

伪类选择器

1.链接伪类选择器:正对某些元素的一些状态进行选择
a:link 选择未被访问过的链接
a:visited 选择已经被访问过的链接
a:hover 选择鼠标指针悬停上的链接
a:active 选择活动链接(鼠标按下了但是未弹起)
注意:
按照 LVHA 的顺序书写, 例如把 active 拿到前面去, 就会导致 active 失效. 记忆规则 "绿化"
浏览器的 a 标签都有默认样式, 一般实际开发都需要单独制定样式.
实际开发主要给链接做一个样式, 然后给 hover 做一个样式即可. link, visited, active 用的不多

如何让一个已经被访问过的链接恢复成未访问的状态?
清空浏览器历史记录即可. ctrl + shift + delete


2.force 伪类选择器:选取获取焦点的 input 表单元素

<div class="three">
<input type="text">
<input type="text">
<input type="text">
<input type="text">
</div>
.three>input:focus {
color: red;
}

选中前选中后被选中的表单的字体就会变成红色

 常用元素属性

字体属性

设置字体 font-family

字体大小 dont-size

字体粗细 font-weight

文字样式 em / i

/* 设置倾斜 */
font-style: italic;
/* 取消倾斜 */
font-style: normal;
<div class="font-family">
    <div class="one">
        这是微软雅黑
    </div>
    <div class="two">
        这是宋体
    </div>
--------------------------
.font-family .one {
font-family: 'Microsoft YaHei';
}
.font-family .two {
font-family: '宋体';
font-size: 20px;
font-style: italic;
}

文本属性

 文本颜色 3种写法

color: red;
color: #ff0000;
color: rgb(255, 0, 0);

文本对齐 text-align: [值];

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

文本装饰:text-decoration: [值];

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

文本缩进:text-indent: [值];

  • 单位可以使用 px 或者 em.
  • 使用 em 作为单位更好. 1 个 em 就是当前元素的文字大小.
  • 缩进可以是负的, 表示往左缩进. (会导致文字就冒出去了)

行高:上下文本行之间的基线距离。

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

背景属性

背景颜色:background-color: [指定颜色],默认透明(transparent)

背景图片:background-image: url(...);

  • url 可以是绝对路径, 也可以是相对路径
  • url 上可以加引号, 也可以不加.

背景平铺:background-repeat: [平铺方式]; 默认是repeat

  • repeat: 平铺
  • no-repeat: 不平铺
  • repeat-x: 水平平铺
  • repeat-y: 垂直平铺
  • 背景颜色和背景图片可以同时存在. 背景图片在背景颜色的上方
     

背景位置:background-position: x y;

修改图片的位置参数有三种风格:
1. 方位名词: (top, left, right, bottom)
2. 精确单位: 坐标或者百分比(以左上角为原点)
3. 混合单位: 同时包含方位名词和精确单位

  • 如果参数的两个值都是方位名词, 则前后顺序无关(top left 和 left top 等效)
  • 如果只指定了一个方位名词, 则第二个默认居中 (left 则意味着水平居中, top 意味着垂直居中)
  • 如果参数是精确值, 则的的第一个肯定是 x , 第二个肯定是 y(100 200 意味着 x 为 100, y 为 200)
  • 如果参数是精确值, 且只给了一个数值, 则该数值一定是 x 坐标, 另一个默认垂直居中
  • 如果参数是混合单位, 则第一个值一定为 x, 第二个值为 y 坐标. (100 center 表示横坐标为 100, 垂直居中)
  • 计算机中的平面坐标系

 背景尺寸:background-size: length | percentage | cover | contain;

  • 可以填具体的数值: 如 40px 60px 表示宽度为 40px, 高度为 60px
  • 也可以填百分比: 按照父元素的尺寸设置.
  • cover: 把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。背景图像的某些部分也许无法显示在背景定位区域中。
  • contain: 把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域
  • contain 和 cover 当元素为矩形(不是正方形) 时, 区别是很明显的
     

圆角矩形

border-radius: length ; length 是内切圆的半径. 数值越大, 弧线越强烈。

border-radius:2em;
等价于(按照顺时针排列)
border-top-left-radius:2em;
border-top-right-radius:2em;
border-bottom-right-radius:2em;
border-bottom-left-radius:2em;

元素的显示模式

块级元素

常见的元素:

  • h1 - h6
  • div
  • ul
  • ol
  • li

特点:

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

注意:

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

行内元素

常见的元素:

  • a
  • strong
  • b
  • em
  • i
  • del
  • s
  • ins
  • u
  • span

特点:

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

注意:

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

行内元素和块级元素的区别

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

改变显示模式

  • 使用 display 属性可以修改元素的显示模式.
  • 可以把 div 等变成行内元素, 也可以把 a , span 等变成块级元素.
  • display: block 改成块级元素 [常用]
  • display: inline 改成行内元素 [很少用]
  • display: inline-block 改成行内块元素

盒模型

边框    层叠性, 就近原则
粗细: border-width
样式: border-style, 默认没边框. solid 实线边框 dashed 虚线边框 dotted 点线边框
颜色: border-color

边框会撑大盒子,可以通过 box-sizing 属性修改浏览器的行为, 使边框不再撑大盒子。

内边距    默认内容是顶着边框来放置的. 用 padding 来控制这个距离

复合写法:

  • padding: 5px; 表示四个方向都是 5px
  • padding: 5px 10px; 表示上下内边距 5px, 左右内边距为 10px
  • padding: 5px 10px 20px; 表示上边距 5px, 左右内边距为 10px, 下内边距为 20px
  • padding: 5px 10px 20px 30px; 表示 上5px, 右10px, 下20px, 左30px (顺时针)

外边距    控制盒子和盒子之间的距离
/ *   复合写法规则同padding   */

弹性布局

任何一个 html 元素, 都可以指定为 display:flex 完成弹性布局。
flex 布局的本质是给父盒子添加 display:flex 属性, 来控制子盒子的位置和排列方式。
基础概念:

  • 被设置为 display:flex 属性的元素, 称为 flex container
  • 它的所有子元素立刻称为了该容器的成员, 称为 flex item
  • flex item 可以纵向排列, 也可以横向排列, 称为 flex direction(主轴)
  • 当父元素设置为 display: flex 之后, 子元素的 float, clear, vertical-align 都会失效
     

justify-content
设置主轴上的子元素排列方式

align-items
设置侧轴上的元素排列方式

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值