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. 前端,DJ

    Vue模块 1.Vue都有哪些指令,简单说说? """ Vue里面常见指令有文本指令:v-text.v-html,属性指令:v-bind,方法指令:v-on,条件指令:v ...

  2. tensorflow学习笔记(三):实现自编码器

    黄文坚的tensorflow实战一书中的第四章,讲述了tensorflow实现多层感知机.Hiton早年提出过自编码器的非监督学习算法,书中的代码给出了一个隐藏层的神经网络,本人扩展到了多层,改进了代 ...

  3. Linux上安装git并在gitlab上建立对应的项目

    1.CentOS上面安装git我所用的CentOS为CentOS6.5,其他版本没有测试. yum install git 安装之后查看git版本信息 git --version 2.配置git信息g ...

  4. 安装hadoop集群-cm 5.14.4

    环境 要求: centos 7 java 1.8 cm 5.14.4 mysql 5.7 4核16G 工具要求: mysql-connector-java-5.1.39.jar 1.绑定 hosts ...

  5. oracle拼接sql语句

    示例: select  'select a.xh,a.dj,a.xzb from xsjbxxb a where a.xzb=' || chr(39)  ||   a.xzb ||  chr(39)  ...

  6. SVN与GIT工具使用对比

    版本工具 差异 svn git 系统特点 1.集中式版本控制系统(文档管理很方便) 2.企业内部并行集中开发 3.windows系统上开发推荐使用 4.克隆一个拥有将近一万个提交(commit),五个 ...

  7. 【C++】内联函数(inline)和宏定义(# define)的优劣及其区别

    一.宏定义:# define 1.为什么要使用宏? 因为调用宏比调用函数更有效率,函数的调用必须要将程序的执行顺序转移到函数所存放的内存地址中,将函数程序内容执行完后,再返回到执行该函数前的地方,这种 ...

  8. 生成Makefile文件全过程

    [1]生成Makefile文件全过程 整体流程如下图: 注意:以下文件根目录为testmake(任意位置新建即可) (1)测试程序 1.1 建立两个目录:mkdir include source 1. ...

  9. 破解Charles4.2.7版本

    软件下载地址:请点我 密码:sats dmg软件解密密码是:xclient.info 激活方法 1.将 Charles.app 拖至 应用程序 文件夹 2.将 keygen.jar 拖至 桌面 3.打 ...

  10. SQL Server SSIS中的变量使用表达式后,就无法更改其值了

    在SQL Server SSIS中,我们可以为变量定义初始值和表达式,其实SSIS的变量定义为表达式后我们就无法更改变量的值了,我们来做如下实验: 首先我们在SSIS包中定义一个String类型的变量 ...