CSS基础

!!每个元素都有默认样式,因为 HTML 发明的时候,还没有 CSS

文档流(普通流)

1,内联元素:从左到右依次排列,如果没有空间了,则自动换行
2,块级元素:从上到下依次排列,每个元素占一行

响应式

1,什么都不做就是响应式
2,图片的宽度默认是固定的,一般我们需要加 max-width: 100% 使图片自适应宽度
3,不要写死宽度

如何在html中引入css

1,内联样式

<p style="color: red;background-color: green;"></p>

设置p的颜色为红色,背景颜色为绿色。

2,内部样式

<style type="text/css">...</style>

表示这是样式表,在中间放入css内容;type是它的类型属性,text/css是它的值,它们是告诉浏览器这里面的文本内容(text)要当层叠样式表 (css)来解析,不能当作其它的来解析。

3,外部样式

<link rel="stylesheet" type="text/css" href="链接文件地址">

表示使用元素链接外部信息,rel指定了html文件与所链接文件之间的关系,链接到样式表所以用stylesheet。href是css文件地址。

4,以上方法都可以用 JS 搞出来

(这是我抄方方老师我还没学js我也不懂)

var style = document.createElement('style')
style.innerHTML = 'h2{color: green;}'
document.head.appendChild(style)

var link = document.createElement('link')
link.rel = 'stylesheet'
link.href = 'http://localhost:8888/style.css'
document.head.appendChild(link)

如何在html中引入另一个css

@import
@import详细内容

推荐自学教程: MDN CSS 中文教程

语法

CSS 的语法只有两种规则:
1,样式规则

/*注释*/
div.menu-bar li:hover > ul { 
display: block;  /*分号不能省*/
color: red  /*最后一个分号可以省,但是建议不要省*/
}

2,at规则

  • @charset, 定义样式表使用的字符集.
  • @import, 告诉 CSS 引擎引入一个外部样式表.
  • @media, 如果满足媒介查询的条件则条件规则组里的规则生效。
  • @font-face, 描述将下载的外部的字体。
  • @keyframes, 描述 CSS 动画的中间步骤 .
  • @supports, 如果满足给定条件则条件规则组里的规则生效。
  • @document, 如果文档样式表满足给定条件则条(CSS 4)

值(CSS 2.1)

1,整数和实数
如 「1」「.5」「0.3」
2,长度
相对单位 1em 1ex
绝对单位 1px 1in 1cm 1mm 1pt 1pc
CSS 3 相对单位: 100vh 100vw 1rem
vh:视口高度(等于100的时候是一样高)
vw:视口宽度(等于100的时候是一样宽)
rem:相对于根元素的影响

3,百分比
每个地方的百分比,意义都不一样,你需要查 MDN 才能知道其具体意义
例如 margin-left 和 margin-top
4,URL与URI

body { background: url("http://www.example.com/pinkish.png") } /*引号可选*/

5,计数器

p {counter-increment: par-num}
h1 {counter-reset: par-num}
p:before {content: counter(par-num, upper-roman) ". "}

6,颜色

h2 { color: olive }
em { color: #f00 }              /* #rgb */
em { color: #ff0000 }           /* #rrggbb */
em { color: rgb(255,0,0) }    /*rgb*/  
em { color: rgb(100%, 0%, 0%) } /*rgb的百分比*/

/*CSS 3 https://www.w3.org/TR/css3-color/*/
div { background: transparent; }/*透明*/
div { background: rgba(0,0,0,0.25); }/*最后一个表示透明程度的比例*/
div { background: hsl(0,0%,0%); }/*颜色色相.饱和度.亮度*/
div { background: hsla(0,0%,0%,0.25); }/*颜色色相,饱和度,亮度,透明比例*/

inherit(继承)
box-shadow:10px 5px 5px 1px black:(水平移动,上下移动,模糊程度,影子以边缘为基准的放大或缩小,阴影颜色)
7,字符串
8,不支持的值

选择器

1,越具体优先级越高
2,相同优先级,写在后面的优先级高
3,!important 最高

盒模型

1,border-box

width=contnet

2,content-box

width=content+padding+border

Normal Flow(正常的流程)

  • 从左到右,从上到下
  • inline 元素的宽高
  • 宽度由内部的内联节点总宽度决定
  • 高度由 line height 限定
  • block 元素的宽高
  • 高度有内部文档流中的元素的总高度决定
  • 宽度默认自适应(不是 100%,是 auto)
  • inline 和 block 没有涵盖所有情况,比如 table 和 flex

display

display CSS属性指定用于元素的呈现框的类型。在 HTML 中,默认的 display 属性取决于 HTML 规范所描述的行为或浏览器/用户的默认样式表。在 XML中,其默认值为 inline。

常用值:

none 此元素不会被显示。
block 此元素将显示为块级元素,此元素前后会带有换行符。
inline 默认。此元素会被显示为内联元素,元素前后没有换行符。
inline-block 行内块元素。(CSS2.1 新增的值)
list-item 此元素会作为列表显示。
run-in 此元素会根据上下文作为块级元素或内联元素显示。
compact CSS 中有值 compact,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
marker CSS 中有值 marker,不过由于缺乏广泛支持,已经从 CSS2.1 中删除。
table 此元素会作为块级表格来显示(类似 table),表格前后带有换行符。
inline-table 此元素会作为内联表格来显示(类似 table),表格前后没有换行符。
table-row-group 此元素会作为一个或多个行的分组来显示(类似 tbody)。
table-header-group 此元素会作为一个或多个行的分组来显示(类似 thead)。
table-footer-group 此元素会作为一个或多个行的分组来显示(类似 tfoot)。
table-row 此元素会作为一个表格行显示(类似 tr)。
table-column-group 此元素会作为一个或多个列的分组来显示(类似 colgroup)。
table-column 此元素会作为一个单元格列显示(类似 col)
table-cell 此元素会作为一个表格单元格显示(类似 td 和 th)
table-caption 此元素会作为一个表格标题显示(类似 caption)
inherit 规定应该从父元素继承 display 属性的值。

inline-block 的两个「bug」

你在使用 inline-block 元素的时候一定会遇到两个bug

1, 两个inline-block 元素之间如果有空格、回车、tab,那么在页面上就有一个空隙
标准答案:将父元素的 font-size 设置为0,然后在 inline-block 元素中将 font-size 设置为 14px
实际工作:使用 block 或 float 或 flex,不要使用 inline-block
2 ,两个不同高度的 inline-block 元素无法对齐
还有一种现象就是 img 元素下面无缘无故多出几像素。
标准答案:改变 inline-block 元素的 vertical-align,一般改为 top 或 middle
实际工作:使用 float(用了浮动就要清除浮动) 或 flex,不要使用 inline-block
如果想搞清楚到底为什么会有这两个 bug,就看这篇文章:
深入理解 CSS:字体度量、line-height 和 vertical-align
看完之后,保证你更加搞不清楚。
因为这是字体设计相关的知识,不是 CSS 知识。

border&outline区别:

border:10px solid red;(影响原来位置)
outline:10px solid red;(不影响原来位置)

css学习法

1,CSS 没有为什么,你只能接受现实。
2,CSS 有些属性互相影响,组合起来极其复杂
3,CSS 有些属性很独立,跟其他属性一点关系都没有
!主要秉承「观察法」——即眼见为实。

自学学习大法:
1, Copy from MDN (复制MDN)
2, Run in JSBin(在jsbin应用)
3, Modify in Chrome Developer Tools(在chrome开发工具中修改)
!新手最好使用border大法(给每个元素加上border)

实践

注意默认样式
方块
按钮
表格

常用的字体系列:

  • Arial Black,Helvetica Bold
  • Arial,Helvetica,sans-serif
  • Verdana,Geneva,Arial,Helvetica,sans-serif
  • Times New Roman,Times,serif
  • Courier New,Courier,monospace
  • Georgia,Times New Roman,Times,serif
  • Zapf-Chancery,cursive
  • Western,fantasy
    字体尺寸:
    可以使用关联的描述来庙宇相对尺寸:(xx-small)超超小号,(x-small)超小号,(small)小号,(mdeium)中号,(large)大号,(x-large)加大号,(xx-large)加加大号

负的外边距(margin)可以让ul变宽一点同时不影响占位
浮动可以让两个块级元素处于同一行,但浮动之后记得清除浮动,
清除浮动用:clear fix:让一个元素包住它里面的浮动元素
方框变成圆:border-radius:50%;
浮动的特现:文字会环绕图片周围,浮动脱离了文档流。
clear:left向左看不能看到浮动的元素
clear:both两边都不能看到浮动的元素
clear:right右边看不能看到浮动的元素

一般各种属性:
background-color:背景颜色
border:边框
border-bottom:边框的下边框
font-family:字体
font-weight:字体粗细
font-style:斜体文本
font-size:字体大小
background-image:背景图片
line-height:行间距
padding:内边距
letter-spacing:在字母之间设置间距
text-align:对齐方式
top:控制元素顶部的位置
left:指定元素的左边所在位置
list-style:改变列表项外观

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,722评论 1 92
  • CSS格式化排版 1、字体 我们可以使用css样式为网页中的文字设置字体、字号、颜色等样式属性。下面我们来看一个例...
    张文靖同学阅读 1,267评论 0 3
  • 一.CSS描述 CSS全称为“层叠样式表(Cascading Style Sheets)”,它主要是用于定义HTM...
    snowy_sunny阅读 1,037评论 0 4
  • CSS基础 本文包括CSS基础知识选择器(重要!!!)继承、特殊性、层叠、重要性CSS格式化排版单位和值盒模型浮动...
    廖少少阅读 3,050评论 0 40
  • 题记:她并非是冷血没有感情的。五年,她经历过多少颠沛流离,承受过多少困难挫折,便对他,充满多少感激和怜悯。 但,仅...
    捻尘阅读 468评论 0 0