CSS介绍

​ CSS(Cascading Style Sheet , 层叠样式表)定义如何显示HTML元素。当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)

组成

​ 每个CSS样式由两个组成部分:选择器和声明。声明又包括属性和属性值。每个声明之后用分号结束。

选择器 {属性1:属性值;属性2:属性值}
h1 {color:red;font-size:14px}

CSS的三种引入方式

​ 嵌入式是将CSS样式集中写在网页的 head标签对应的style标签对中。格式如下

  1. 行内样式:
  • ​ 行内式是在标记的style属性中设定CSS样式。不推荐大规模使用
<p style="color:red">
hello word.
</p>
  1. 内部样式:

    • 嵌入式 是将CSS样式集中写在网页的< head>< /head> 标签对的 < style>< /style> 标签对中。格式如下:

      <!DOCTYPE html>
      <html lang="en">
      <head>
      <meta charset="UTF-8">
      <title>CSS三种引入方式</title>
      <style>
      p{
      background-color:#2b99ff;
      } </style>
      </head>
      <body>
      <p>
      qzk
      </p>
      </body>
      </html>
  2. 外部样式:

    • 外部样式 就是讲CSS写在一个单独的文件中,然后再页面进行引入即可。推荐使用此方法。

      <link href="mystyle.css" rel="stylesheet" type="text/css"/>

CSS选择器

Ⅰ 基本选择器

​ ① 元素选择器

p{color:"red";}

​ ② ID选择器

#i1{
background-color:red;
}

​ ③ 类选择器

.c1{
font-size:14px
}
p.c1{
color:red;
}

​ 注意:样式类名不要用数字开头(有的浏览器不认) 标签中的class属性如果有多个,要用空格分开。

​ ④ 通用选择器

*{color:white;}
Ⅱ 组合选择器

①后代选择器

/*li内部的a标签设置字体颜色*/
li a {
color:green;
}

②儿子选择器

/*选择所有父级是<div>元素的<p>元素*/
div>p{
font-family: "Arial Black",arial-black,cursive;
}

③毗邻选择器

/*选择所有紧接着<div>元素后面的<p>元素*/
div+p{margin:5px;}

④弟弟选择器

/*i1后面所有的兄弟p标签*/
#i1~p{
border:2px solid royalblue;
}
Ⅲ 属性选择器
/*用于选取带有指定属性的元素*/
p[title] {
color:red;
}
/*用于选取所有指定属性和值的元素*/
p[title="213"]{
color:green;
}

下面是不太常用的选择器

/*找到所有title属性以hello开头的元素*/
[title^="hello"] {
color: red;
} /*找到所有title属性以hello结尾的元素*/
[title$="hello"] {
color: yellow;
} /*找到所有title属性中包含(字符串包含)hello的元素*/
[title*="hello"] {
color: red;
} /*找到所有title属性(有多个值或值以空格分割)中有一个值为hello的元素:*/
[title~="hello"] {
color: green;
} 不怎么常用的属性选择器
Ⅳ 分组与嵌套
分组

​ 当多个元素的样式相同的时候,我们没有必要重复地为每个元素都设置样式,我们可以通过在多个选择器之间使用逗号分隔的分组选择器来统一设置元素样式。

例如:

div,
p {
color:red;
}

​ 上面代码为div标签和p标签统一设置为红色。

嵌套

​ 多种选择器可以混合起来使用,比如:.c1 类内部所有的p标签设置字体颜色为红色

.c1 p{
color:red;
}
Ⅴ 伪类选择器

​ 一般用在 a标签超链接网页的时候

/* 未访问的链接 */
a:link {
color: #FF0000
} /* 已访问的链接 */
a:visited {
color: #00FF00
} /* 鼠标移动到链接上 */
a:hover {
color: #FF00FF
} /* 选定的链接 */
a:active {
color: #0000FF
} /*input输入框获取焦点时样式*/
input:focus {
outline: none;
background-color: #eee;
}
Ⅵ 伪元素选择器
  • first-letter 常用的给首字母设置特殊样式
p:first-letter{
font-size:48px;
color:red;
}
  • before
/*在每个<p>元素之前插入内容*/
p:before{
content:"*";
color:red;
}
  • after
/*在每个<p>元素之后插入内容*/
p:after{
content:"[?]";
color:blue;
}

注:before 和 after 多用于清除浮动

选择器优先级

CSS继承

​ 继承是CSS的一个主要特征,它依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用与某个特定的元素,还可以应用与他的后代。例如一个body定义了一个字体颜色值也会应用到段落文本中

body{
color:red;
}

此时页面上所有标签都会继承body的字体颜色。然而CSS继承性的权重非常低的,是比普通元素的权重还要低的,我们只要给对应的标签设置字体颜色就可以覆盖掉他的继承的样式。

p{
color:green;
}

​ 此外,继承是CSS重要的一部分,我们甚至不同区考虑它为什么能够这样,但CSS继承也是有限制的。有一些属性不能继承。如:border,margin,padding等。

选择器的集体优先级决定于选择器的权重:

​ 内联样式的权重为10000

​ id选择器的权重为100

​ 类选择器的权重为10

​ 元素选择器的权重为1

注:权重计算永不进位。

简单的说就是一般情况下:内联样式 > id选择器 > 类选择器 > 标签选择器

除此之外,还可以通过添加 !important 方式来强制让样式生效,但是并不推荐使用。因为如果过多的使用 会是样式文件混乱不易维护。

CSS属性相关

宽和高

width属性可以为元素设置宽度

height属性可以为元素设置高度

块级标签才能设置宽度,内联标签的宽度有内容来决定

字体属性

font-family 可以把多个字体名称作为一个“回退”系统来保存。如果浏览器不支持第一个字体,则会尝试下一个,浏览器会使用它可识别的第一个值。

body {
font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif
}
/*设置字体大小*/
p {
font-size: 14px;
}

字重(字体粗细)

font-weight用来设置字体的字重(粗细)

描述
normal 默认值,标准粗细
bold 粗体
bolder 更粗
lighter 更细
100~900 设置具体粗细,400等同于normal ,700等同于bold
inherit 继承父元素字体的粗细值

文本颜色

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

颜色是通过css最近常的制定:

​ 十六进制值 - 如:#FF0000

​ 一个RBG值 - 如:RBG(255,0,0)

​ 颜色名称 - 如:red

还有rgba(255,0,0,0.3),第四个值是 alpha 指定了色彩的透明度/不透明度 ,它的范围为0.0-1.0之间

文字属性

文字对齐

text-align 属性规定元素中的文本的水平对齐方式。

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

文字装饰

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

描述
none 默认 定义标准的文本 常用
underline 定义文本下的一条线
overline 定义文本上的一条线
line-through 定义穿过文本的一条线
inherit 继承父元素的 text-decoration属性值
a {
text-decoration:none;
}

首行缩进

将段落的第一行缩进32个像素

p{
text-indent:32px;
}

背景属性

/*背景颜色*/
background-color:red;
/*背景图片*/
background-image:url('1.jpg')
/*被禁重复*/
repeat(默认):背景图片平铺排满真个网页
repeat-x:背景图片只在水平方向上平铺
repeat-y:背景图片只在垂直方向上平铺
no-repeat:背景图片不平铺
/*背景位置*/
background-position:left top;
/*background-position:200px 200px*/ /*支持简写*/
background:#336699 url('1.png') no-repeat left top;

边框

border-width

border-style

border-color

#i1{
border-width:2px;
border-style:solid;
border-color:red;
}
描述
none 无边框
dotted 点状虚线边框
dashed 矩形虚线边框
solid 实现边框

除了可以统一设置边框外还可以单独为某一个边框设置样式,如下所示:

#i1 {
border-top-style:dotted;
border-top-color: red;
border-right-style:solid;
border-bottom-style:dotted;
border-left-style:none;
}

border-radius:可以实现圆角边框的效果

将border-radius设置为长或高的一半即可得到一个圆形

display属性

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

描述
display:"none" HTML文档中元素存在,但是在浏览器中不显示,一般用于配合JavaScrpt代码使用
display:"block" 默认占满整个页面宽度,如果设置了指定高度,则会margin填充剩下的部分
display:"inline" 按行内元素显示,此时再设置元素的width、height、margin-top、margin-bottom和 float属性都不会有什么影响
display:"inline-block" 使元素同时具有行内元素和块级元素的特点。

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

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

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

带你快速上手前端三剑客之css的更多相关文章

  1. 几个小实践带你快速上手MindSpore

    摘要:本文将带大家通过几个小实践快速上手MindSpore,其中包括MindSpore端边云统一格式及华为智慧终端背后的黑科技. MindSpore介绍 MindSpore是一种适用于端边云场景的新型 ...

  2. 前端三剑客:html,css,JavaScript

    一.前端概念 二.html详细介绍 三.css基础 四.css盒模型 五.css高级布局 六.JS基础 七.JS常用类 八.JS基础操作 九.JS高级与事件 十.BOM与DOM 十一.jQuery初识 ...

  3. 前端html、CSS快速编写代码插件-Emmet使用方法技巧详解

    前端html.CSS快速编写代码插件-Emmet使用方法技巧详解   Emmet的前身是大名鼎鼎的Zen coding,如果你从事Web前端开发的话,对该插件一定不会陌生.它使用仿CSS选择器的语法来 ...

  4. 前端开发工具包 WijmoJS 2019V1正式发布:全新的在线 Demo 系统,助您快速上手,开发无忧

    ​ 前端开发工具包WijmoJS在2019年的第一个主要版本2019V1已经发布,本次发布包括了更加易用的在线Demo系统.各控件新增功能.NPM 包的改动,以及全新的浏览器API组件. WijmoJ ...

  5. 【前端优化之拆分CSS】前端三剑客的分分合合

    几年前,我们这样写前端代码: <div id="el" style="......" onclick="......">测试&l ...

  6. CSS快速入门基础篇,让你快速上手(附带代码案例)

    1.什么是CSS 学习思路 CSS是什么 怎么去用CSS(快速上手) CSS选择器(难点也是重点) 网页美化(文字,阴影,超链接,列表,渐变等) 盒子模型 浮动 定位 网页动画(特效效果) 项目格式: ...

  7. npm、webpack、vue-cli 快速上手

    npm+webpack+vue-cli快速上手   Node.js   npm 什么是Node.js  以及npm 简单的来说 Node.js 就是运行在服务端的JavaScript,基于Chrome ...

  8. 快速上手最新的 Vue CLI 3

    翻译:疯狂的技术宅 原文:blog.logrocket.com/getting-sta- 概要:本文将指导你快速上手 Vue CLI 3,包括最新的用户图形界面和即时原型制作功能的使用步骤. 介绍 尤 ...

  9. 微信小程序开发平台新功能「云开发」快速上手体验

    微信小程序开发平台刚刚开放了一个全新的功能:云开发. 简单地说就是将开发人员搭建微信小程序后端的成本再次降低,此文刚好在此产品公测时,来快速上手看看都有哪些方便开发者的功能更新. 微信小程序一直保持一 ...

随机推荐

  1. [无效]网络流之Edmond-Karp算法

    // 此博文为迁移而来,写于2015年2月2日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102vr12.html   UP ...

  2. 【转】Go 内存管理

    1. 前言 编写过C语言程序的肯定知道通过malloc()方法动态申请内存,其中内存分配器使用的是glibc提供的ptmalloc2.除了glibc,业界比较出名的内存分配器有Google的tcmal ...

  3. 【游记】CSP-S2019游记

    \(\Large\texttt{Day -1}\) 今天晚上gryz开了也许是晚宴(awa),有水饺和蛋糕.因为去拿笔记本的原因没有吃到蛋糕..好可惜. 明天不用上早自习太棒了. 明天出发报道. 这笔 ...

  4. PATB1048数字加密

    关于代码都是可以在PAT上跑通的 自己是在VS2017上写的,所以会有语句system("pause");,表示暂定方便查看结果. *在一个是VS2017中使用scanf会报错,所 ...

  5. spark 存取mysql

    1.先上代码,存入mysql val spark = SparkSession.builder() .appName("jdbc") .getOrCreate() import s ...

  6. SQLite中字段顺序和PAGE_SIZE对性能的影响

    1.背景 SQLite数据库中有1张表,该表含若干个字段,其中有1个字段为BLOB类型,且BLOB字段不是最后1个字段.表结构类似如下(col3为BLOB字段): T (col1 INTEGER,co ...

  7. [记录]mscorlib recursive resource lookup bug解决方法

    [Content]Expression: [mscorlib recursive resource lookup bug]Description: Infinite recursion during ...

  8. [转帖]Linux crontab 查看所有用户的crontab任务

    Linux crontab 查看所有用户的crontab任务 https://www.cnblogs.com/xzlive/p/11542176.html 查看所有用户的crontab任务 - mlz ...

  9. [转帖]浅谈P2P、P2C 、O2O 、B2C、B2B、 C2C的区别

    浅谈P2P.P2C .O2O .B2C.B2B. C2C的区别 https://www.cnblogs.com/zhuiluoyu/p/5481635.html 相信有很多人对P2P.P2C .O2O ...

  10. IAR_STM32_CCM内存使用

    在IAR中,硬件环境为STM32F464单片机,额外的CCM不能用DMA访问,但可以作为内部额外扩充RAM使用 修改文件中的内容为: define symbol __ICFEDIT_region_RO ...