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. python 文件读写模式区别,以及如何边写入边保存flush()

    如表: 模式 可做操作 若文件不存在 是否覆盖 r 只能读 报错 - r+ 可读可写 报错 是 w 只能写 创建 是 w+ 可读可写 创建 是 a 只能写 创建 否,追加写 a+ 可读可写 创建 否, ...

  2. 应用JWT进行用户认证及Token的刷新

    本文将通过实际的例子来演示如何在ASP.NET Core中应用JWT进行用户认证以及Token的刷新方案(ASP.NET Core 系列目录) 一.什么是JWT? JWT(json web token ...

  3. 【CSP2019】题解合集

    诈个尸 先挖坑 虽然连去都没去但还是想做做 今年貌似比去年还毒瘤啊... yrx.hjw都进了省队线tql orz (myh:没AK真丢脸 Day1T1 格雷码 Day1T2 括号树 Day1T3 树 ...

  4. HDFS命令行及JAVA API操作

    查看进程 jps 访问hdfs: hadoop-root:50070 hdfs bash命令: hdfs dfs <1>   -help:  显示命令的帮助的信息 <2>  - ...

  5. Lambda表达式和方法引用

    1 , 为什么用lambda表达式 将重复固定的代码写法简单化 2   ,lambda表达式的实质 对函数式接口的实现(一个接口中只有一个抽象方法的接口被称为函数式接口) package com.mo ...

  6. Win10 系统直接在目录下打开cmd

    每次用cmd命令,就要定位到当前文件夹,很麻烦 这里介绍一种直接定位到要操作的文件夹的方法: 操作步骤: (1)选择要cmd的文件夹,按住Shift键,鼠标右键快捷方式,先打开Powershell窗口 ...

  7. 低版本的 eclipse 不支持 tomcat8.5 的解决方法

    目录 低版本的eclipse 不支持 tomcat8.5,但是还想使用的方法 低版本的eclipse 不支持 tomcat8.5,但是还想使用的方法 1. 介绍:   我在使用 mars 版本的 ec ...

  8. 9. Scala隐式转换和隐式值

    9.1 隐式转换 9.1.1 提出问题 先看一个案例演示,引出隐式转换的实际需要=>指定某些数据类型的相互转化 object boke_demo01 { def main(args: Array ...

  9. (二)咋使用VUE中的事件修饰符

    1,stop修饰符:阻止事件冒泡 首先我们要明确H5的事件是从内向外进行冒泡的,写一个简单的DEMO 当我们点击按钮时,事件从内向外冒泡,依次触发绑定的事件,控制台信息如下 现在我们在click后面添 ...

  10. Java Objective-C AOP

    Java Use an AOP library or byte-code engineering (BCEL, cglib, asm, etc) to create a sub-class on th ...