CSS笔记

CSS语法格式

CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明。
selector {declaration1; declaration2; ... declarationN }
每条声明由一个属性和一个值组成。
属性(property)是您希望设置的样式属性(style attribute)。每个属性有一个值。属性和值被冒号分开。
selector {property: value}

下面示意图展示CSS代码结构:


CSS的书写样式

  • 行内样式
 <div class="top-content" style="background-color: rebeccapurple">
  • 页内样式
<head>
    <meta charset="UTF-8">
    <title>PL百度</title>
    <link href="imgs/css/index.css" rel="stylesheet">
    //此处页内样式
    <style>
        div {
            text-align: center;
        }
    </style>
</head>
  • 外部样式
首先html中引用
    <link href="imgs/css/index.css" rel="stylesheet">
然后单独写一个CSS文件,类似这样
*{
    padding:0;
    margin:0;
}
a{
    color: black;
}
body{
    background: url("../psb (3)1.jpeg");
    background-size: auto;
}

/*头部*/
#header{
    /*右对齐*/
    text-align: right;
    /*margin: 15px 0;*/
    height: 42px;
    background-color: rgba(0,0,0,0.2);
    line-height: 42px;
}

CSS选择器

选择器的作用:选择对应的标签,为之添加样式。

选择器分类

  • 标签选择器 :根据标签名(tag)找到标签
a {
    color: black;
}
//解释:设置`a`标签颜色为黑色样式

  • id选择器:找到指定标记为 id 的元素,一般一个 id 对应一个标签元素。
    <div id="content"> </div>

//在 CSS 中id选择器以一个"#"号显示:
#content{
    text-align: center;
    /*background-color: aqua;*/
}
解释:为id为content的元素设置水平对齐样式
  • 类选择器:找到指定标记为 class 的元素
<h1 class="center">
This heading will be center-aligned
</h1>

//在 CSS 中,类选择器以一个"."号显示:
.center {text-align: center}
//为类名为center的元素设置水平对齐样式
  • 并列选择器:类似与逻辑计算符号并 “||”,并列条件满足其中一项即可
//选择器之间以“,”隔开
div, .high { color: red;}
//设置所有的div标签和.high(类为high)标签为红色
  • 复合选择器:类似于逻辑计算符与 “&&”,同时满足复合条件
//相较于并列选择器,选择器之间没有用“,”隔开
div.high {color: red;}
//同时满足div和类名为high的标签设置为红色
  • 属性选择器:找到对应属性的元素
<h2 title="Hello world">Hello world</h2>

//在CSS中,属性选择器以"[属性名]"显示
[title]
{
color:red;
}

//带有 title 属性的所有元素设置样式:
  • 通配符选择器
* {color:red;}
//该选择器可以与任何元素匹配,为任何元素设置颜色为红色

  • 后代选择器:又称为包含选择器,后代选择器可以选择作为某元素后代的元素,包括子元素,子孙元素等。
//父元素和子元素之间以空格“ ” 隔开
h1 em {color:red;}
// h1 元素后代的 em 元素的文本变为 红色
  • 子元素选择器:与后代选择器相比,子元素选择器(Child selectors)只能选择作为某元素子元素的元素。
h1 > strong {color:red;}
//h1元素后代的一级后代 strong 元素文本变为红色

<h1>This is <strong>very</strong> <strong>very</strong> important.</h1>
<h1>This is <em>really <strong>very</strong></em> important.</h1>
//这个规则会把第一个 h1 下面的两个 strong 元素变为红色,但是第二个 h1 中的 strong 不受影响:
  • 相邻兄弟选择器:如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器(Adjacent sibling selector)。
//相邻兄弟元素间用“+”号连接
h1 + p {margin-top:50px;}
//选择紧接在 h1 元素后出现的段落,h1 和 p 元素拥有共同的父元素”
  • 伪类
    常用的伪类有::focus:hover
    :focus:向拥有键盘输入焦点的元素添加样式。
    :hover:当鼠标悬浮在元素上方时,像元素添加样式。
input:focus{
    /*去除外线条*/
    outline:none;
}
//当输入框要输入时候(即键盘获得焦点时候),去除外线条

多种选择器组合使用,可以快速定位到HTML中我们需要的元素

html > body table + ul {margin-top:20px;}
//这个选择器解释为:选择紧接在 table 元素后出现的所有兄弟 ul 元素,该 table 元素包含在一个 body 元素中,body 元素本身是 html 元素的子元素。


#tabbar-header ul li.selected {
    background-color: white;
    border-bottom: 0;
    /*左右线条*/
    border-left: 1px solid #dddddd;
    border-right: 1px solid #dddddd;
    color: orange;
}
//这个解释为:id为tabbar-header元素中,后代为ul标签中选择后代li标签中类名为selected的所有元素。

CSS样式遵循的规律:

相同类型的选择器遵循:

  • 就近原则;

  • 叠加原则

不同类型的选择器遵循:

  • 选择器的针对性越强,它的优先级就越高。

  • 选择器的权值加到一起,大的优先;如果权值相同,后定义的优先

  • !important > 内联 > id > 类 > 标签|伪类|属性选择 > 伪元素 > 通配符> 继承

CSS中HTML标签类型

在CSS中,html中的标签元素大体被分为三种不同的类型:块级标签、内联标签(行内标签)和内联块级标签。
常用的块级标签有(独占一行,弄够随时设置宽度和高度):
<div>、<p>、<h1>...<h6>、<ol>、<ul>、<dl>、<table>、<address>、<blockquote> 、<form>

常用的内联标签有(多个行内标签同时显示在一行,宽高取决于内容):
<a>、<span>、<br>、<i>、<em>、<strong>、<label>、<q>、<var>、<cite>、<code>
常用的内联块级标签有(可同时显示在一行,能随时设置宽度和高度):
<img>、<input>

修改标签的显示类型

display属性能够修改标签的显示类型,display有以下几个取值

  • none: 影藏标签
  • block : 让标签变为快级标签
  • inline: 让标签变为行内标签
  • inline-block: 让标签变为行内-块级标签
    设置display属性可以主动改变标签元素的块级类型
    a{display:block;}

CSS属性

从继承性可以分为可继承属性和不可继承属性

  • 可继承属性:父标签的属性值会传递给子标签,一般是文字控制属性。
  • 不可继承属性:父标签的属性值会传递给子标签,一般是区块控制属性。

熟悉CSS常见属性:传送门

字体属性: 字体属性的功能是设置页面字体的显示样式

font-family         设置使用的字体
font-style          设置字体的样式,是否斜体
font-variant        设置字体的大小写
font-weight         设置字体的粗细
font-size           设置字体的大小

颜色和背景属性:颜色和背景属性的功能是设置页面元素的颜色和背景颜色

color 设置元素前景色
background-color        设置元素背景色
background-imge         设置元素背景图案
background-repeat       设置背景图案的重复方式
background-attachmen    设置背景图案的滚动方式
background-position     设置背景图案的初始位置

文本属性:文本属性的功能是设置页面的显示效果

text-align      设置文本的对齐方式
text-indent     设置文本的首航缩进
line-height     设置文本的行高
a:link          设置链接未访问的状态
a:visited       设置链接访问过的的状态
a:hover         设置链接的鼠标激活状态

块属性:块属性是设置页面内快元素的显示效果

margin-top       设置顶边距
margin-right     设置右边距
padding-top      设置顶端填充距
padding-right    设置右侧填充距

边框属性:边框属性是设置页面内边框元素的显示效果

border-top-width   设置顶端边框宽度
border-right-width 设置右端边宽宽度
width              设置图文混排的宽度属性
height             设置图文混排的高度属性

项目符号和编号属性:设置页面内项目符号和编号元素的显示效果

display     设置是否现实符号
white-space 设置空白部分的处理方式

层属性: 设置页面内元素的定位方式

absolute  设置绝对定位
relative  设置相当定位
static    设置无特殊定位

盒子模型


元素框的最内部分是实际的内容,直接包围内容的是内边距。内边距呈现了元素的背景。内边距的边缘是边框。边框以外是外边距,外边距默认是透明的,因此不会遮挡其后的任何元素。

CSS文件开头经常为了适配各个浏览器

body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td,hr,button,article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section {
    margin:0;
    padding:0;
}

box-sizing
以特定的方式定义匹配某个区域的特定元素,默认值为content-box
box-sizing 设置为"border-box",可以把边框和内边距放入框中。

CSS布局

默认情况下,所有流都在标准流布局中,从上到下,从左边往右。
脱离标准流的方法有

  • float属性
  • position属性和left、right、top、bottom属性
    任何一种类型的标签一旦脱离标准流,就会被强制转为行内-块级标签

float(浮动)

浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
float 属性控制

left 元素向左浮动。
right 元素向右浮动。
none 默认值。元素不浮动,并会显示在其在文本中出现的位置。
inherit 规定应该从父元素继承 float 属性的值。

position

通过使用 position 属性,我们可以选择 4 种不同类型的定位,这会影响元素框生成的方式。
CSS position 属性
static:正常生成,从左往右,从上往下,默认。
relative:相对父元素和盒子模型定位,元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
absolute:元素框从文档流完全删除,并相对于其包含块定位。
fixed:相对于浏览器窗口进行定位。
一打理解position的例子

#tabbar-header{
    width: 500px;
    height: 30px;
    background-color: #f7f7f7;
    position: relative;
}


#tabbar-header ul{

    width: 502px;
    /*display: inline-block;*/
    text-align: center;
    line-height: 30px;
    /*overflow: hidden;*/
    position: absolute;
    left: -1px;
    right: 1px;
}
//tabbar-header为父元素设置相对定位 , ul相对父元素进行绝对定位(设置左右固定值),子绝父相。

居中

  • 水平居中
    行内标签和行内-块级标签: 父元素中设置 text-align:center;
    块级标签居中方法: 在自身设置 margin:0 auto;

  • 垂直居中
    行内标签和行内-块级标签: 在父标签中设置line-height
    块级标签:

position: absolute;
left:50%;
right:50%;
transform: translate(-50%, -50%);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,080评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,422评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,630评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,554评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,662评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,856评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,014评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,752评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,212评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,541评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,687评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,347评论 4 331
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,973评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,777评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,006评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,406评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,576评论 2 349

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,737评论 1 92
  • 转载请声明 原文链接地址 关注公众号获取更多资讯 第一部分 HTML 第一章 职业规划和前景 职业方向规划定位...
    程序员poetry阅读 16,524评论 32 459
  • 语义化 标签一 标签二 CSS 认识CSS 1、CSS全称为“层叠样式表 (Cascading Style She...
    wq04200阅读 616评论 0 1
  • CSS格式化排版 文字排版--字体 我们可以使用css样式为网页中的文字设置字体、字号、颜色等样式属性,如下: 不...
    wq04200阅读 382评论 0 1
  • 一周的时间转眼间就过去啦,就这样第三周已经结束,我要汇报我的学习总结,其实学习也不难,第三周的学习中我知道...
    谷晓玉阅读 323评论 1 1