HTML+CSS

HTML

选择什么元素取决于内容的含义而不是显示的效果

语义化

  • 为了搜索引擎优化(SEO)
  • 为了让浏览器理解网页:阅读模式 语言模式
  • HTML元素周期表

文本元素

  • h: h1-h6
  • p段落
  • span无语义,仅用于设置样式
  • 以前某些元素在显示时会独占一行(块级元素),而某些元素不会(行级元素),到HTML5已经弃用这种说法,内容类别
  • pre预格式化文本[无语义]
  • 空白折叠:在源代码中的连续空白字符(空白换行制表)在页面显示时,会被折叠为一个,
  • 在pre元素中不会出现空白折叠,按原代码,该元素通常用于显示代码
  • pre的本质:它有一个默认的CSS white-space:pre

HTML实体

  • 实体字符通常用于页面中显示一些特殊符号
  • &单词
  • &#数字
  • <
  • &

  • 空格 &nbsp
  • & &nmp

a元素

  • 超链接

  • target属性:表示跳转窗口位置(_self/_black)

  • 跳转地址;跳转到某个锚点;功能链接

  • <a href='javascript:alert('你好')'></a>

  • <a href='tel'></a>

    路径的写法

  • 绝对路径:站外资源
  • 协议名://主机名:站口号、路径(协议相同可省略协议)
  • 相对路径:站内资源
  • 以./开头表示当前资源所在的目录
  • 以../表示返回上一级目录

    图片元素 img元素

  • src属性;source
  • alt属性:当图片资源失效时用文字表示
  • <a><img></a>
  • 和map元素
    <map name='1'>
    <img usemap='#1'>
    map划分区域
    <area shape="x,y,z" coords='''' href='' alt=''></area></map>
  • 衡量坐标避免误差,需要用专业的衡量工具(QQ截图,屏幕发100%)和figure元素关联

  • 指代定义通常把图片包括起来

  • <figure><h1></h1><img></figure>

    多媒体元素video audio

  • controls显示控件、布尔属性
  • autoplay自动播放、布尔属性
  • muted静音播放、布尔属性
  • loop循环播放、布尔属性

    列表元素

  • 有序列表 ol li
  • 无序列表 ul li
  • 定义列表 dl>dt(标题dd描述)

    容器元素

  • 该元素代表一个块区域,内部用于放置其他元素
  • div没语义
  • 语义化容器元素
  • header通常表示页头,也可以表示文章的头部
  • footer通常用于表示页脚,也可用于表示文章的尾部
  • article通常英语表示整片文章
  • section通常用于表示文章的章节
  • aside通常用于表示侧边栏

元素的包含关系

  • 块级元素可包含行级元素,行级元素不可以包含块级元素,a元素除外
  • 元素的包含关系由元素的内容类别决定
  • 容器元素中可包含任何元素
  • a元素几乎可以包含任何元素
  • 某些元素有固定的子元素,dl>dt/dd,ul>li,ol>li
  • 标题元素和段落元素不能嵌套,并且不能包含容器元素

CSS

color

  • 元素内部的字体颜色

  • 预设值:定义好的单词

  • 三原色:色值 rgb(,,)

  • 淘宝红ff4400

  • background-color

    字体相关

  • 元素内部文字的尺寸大小

  • px像素,高度占的像素

  • em相对父元素的字体大小--->html也无字体,则使用基准字号(浏览器设置)

  • font-weigt:文字粗细程度,可以取值数字,也可以取值预设值

  • font-family:字体,必须用户计算机中存在的字体,设置多个字体,sans-serif非衬现字体

  • font-size:字体样式,通常设置倾斜:italic;strong:重要的,不能忽略的内容;em表示强弱的内容(斜体)

  • text-decoration:underline(下划线)

  • a元素下划线,del中划线

  • text-indentz:首行文本缩进

  • line-height:行高(多行文字时不设置绝对单位,用相对单位,直接用数值),单行文本垂直:绝对单位

  • text-align:元素内部文字的水平排列方式

  • letter-space文字间隙

选择器

帮助你精确的选中想要的元素

  • ID选择器
  • document.getElementById()
  • class选择器
  • document.getElementsByClassName()
  • 通过标签的class名进行选择,返回的是一个数组,当我们需要对单个进行操作时,可利用数组的操作来选择单个的元素;这里需要注意的是,不同于ID选择器,因为是一个数组所以是Elements,注意有一个s,又由于在ES6中有class关键字,为了避免重复这里用的是ClassName
  • 标签选择器
  • document.getElementsByTagName()
  • name选器
  • document.getElementsByName()
  • name选择器一般用于表单,含有name属性的标签;同样,返回的是一个数组。
  • 属性选择器
  • *[title] {color:red;}img[alt] {border: 5px solid red;}
  • 根据属性和属性值选中元素
  • 伪类选择器
  • 选中某些元素的某种状态
  • hover:鼠标悬停状态
  • active:激活状态,鼠标按下状态
  • link:超链接访问的状态
  • visited:访问过后的状态
  • link>visited>hover>active
  • 伪元素选择器
  • ::before{content:'<<'}
  • ::after{content:}
  • 选择器的组合
  • 后代元素 空格
  • 子元素 >
  • 相邻兄弟元素+
  • 后边出现的所有兄弟元素~
  • 选择器的并列
  • 多个选择器用逗号隔开

层叠样式表

  • 声明冲突:同一个样式多次应用到同一个元素
  • 层叠:解决声明冲突的过程,浏览器自动处理(权重计算)
  • 1,比较重要性2.比较特殊性3.比较源次序
  • 比较重要性
  • a.作者样式的!important
  • b.作者样式表中的普通样式
  • c.浏览器默认样式
    -比较特殊性
  • 总体规则:选择器中的范围越窄越特殊
  • 具体规则:通过选择器计算出一个4位数
  • 千位:如果是内联样式计位1,否则为0
  • 百位:将选择器中所有ID选择器的数量
  • 十位:等于选择器中类选择器、伪类选择器、属性选择器
  • 个位:等于选择器中元素选择器、伪元素选择器
  • 应用
  • 重置样式表
  • reset.css
  • normslize.css
  • meyer.css

继承

  • 子元素会继承父元素的css样式
  • 文字内容相关的属性都可以继承

属性值的计算过程

  • 渲染每个元素的前提条件:该元素的所有css属性必须有值


    在这里插入图片描述
  • 1、确定声明值:参考样式表中没有冲突的声明,作为css的属性值,浏览器样式
  • 2、层叠冲突:对样式表中有冲突的声明使用层叠规则,确定css属性
  • 特殊的两个css取值:
  • inherit强制让元素继承;initial表示初始值(默认值)

盒模型

  • 行盒:display:inline-block
  • 块盒:display:block

宽高

  • 改变宽高范围
  • 衡量设计稿尺寸的时候,往往使用的是边框盒,但设置width和height则设置的是内容盒
  • 1.精确计算2.css3属性:box-sizing:content-box/border-box
  • 背景覆盖范围
  • 默认情况下覆盖边框盒
  • 可以通过background-clip进行修改
  • 溢出处理
  • 默认visible
  • overflow控制内容溢出边框盒的处理方式
  • hidden/scroll(可控制水平overflow-y/x)
  • 短词规则
  • word-break会影响文字在什么位置截断换行
  • normal普通,字/单词截断
  • break-all截断所有,英文单词内部截断
  • keep-all所有文字都在单词之间显示,中文则一行显示(空格位置显折)
  • 空白处理
  • 只能控制单行文本
  • white-space:nowrap(不换行)
  • text-overflow:elipsis(文本溢出用点代替)
  • pre不空白折叠

行盒的盒模型

  • 盒子沿着内容延伸
  • 行高不能设置,宽高:调整盒行的宽高,应使用字体大小,行高字体类型间接触调整
  • 内边距(填充区):水平方向有效,垂直方向只会影响背景,不会实际占据空间
  • border/margin同上

行块盒inline-block

  • 不独占一行,盒模型所有尺寸都有效
  • 空白折叠发生在行块盒的内部或者行块盒之间

可替换元素和非可替换元素

  • 大部分元素,页面上显示的结果,取决于元素内容,成为非可替换元素;小部分元素,页面显示的结果,取决于元素属性,成为可替换元素,例如:img、video、audio
  • 可替换元素类似于行块,盒模型中所有尺寸都有效
  • object-fit:fill/cover图片的宽高自适应

视觉格式化模型(布局规则)

  • 页面中的多个盒子排列规则

  • 1.常规流2.浮动3.定位

  • 常规流布局

  • 所有元素默认情况下都属于常规流布局

  • 总体规则:块行独占一行,行盒水平依次排列

  • 包含块:每个盒子都有它的包含块,包含块决定了盒子的排列区域

  • 绝大部分情况下,盒子的包含块,为其父元素的内容盒

  • 块盒;

  • 1.每个块盒的总宽度必须刚好等于包含块的宽度,宽度默认值auto,margin:0;width吸收能力强于margin;auto将剩余的空间吸收掉;

  • 若宽度、边框、内边距、外边距计算后,仍然有剩余空间,该剩余空间全部被margin-right吸收掉,(和文字的排列方式有关)

  • 2.每个块盒垂直方向上的auto值

  • height:auto适应内容的高度

  • margin;auto表示0

  • 3.百分比取值

  • padding、宽高、margin可取百分比

  • 所有百分比相对包含块的宽度

  • 高度的百分比:

  • 包含块的高度是取决于子元素的,设置百分比无效

  • 包含块的高度是取决于子元素的高度,百分比相对于父元素的高度

  • 4.上下外边距的合并(父子元素相邻也合并)

  • 两个外边距取最大值

  • 浮动

  • 应用场景:文字环绕、横向排列

  • 基本特点:修改float属性值:默认值为none,left(左浮动,元素靠左靠上),right(元素靠右靠上)

  • 当一个元素浮动后,元素必定为块盒(更改为display:block)

  • 浮动元素的包含块为父元素的内容盒

  • 浮动的表现:浮动的框可以向左向右移动时,直到它的外边缘碰到包含块或另一个浮动框的边缘为止。

  • 盒子尺寸

  • 1.宽度为auto时,适应内容宽度

  • 2.高度为auto时,与常规流一致,适应内容的高度
    -3. margin为auto是为0

  • 4.边框、内边距、百分比设置与常规流一样

  • 部分无视和全部无视

  • 1.使用float脱离文档流时,其他盒子会无视这个盒子,但其他盒子内的文本会为这个元素让出位置,环绕在周围(可以说是部分无视)

  • 2.使用absolute脱离文档流的元素,其他盒子内的文本都会无视它(全部无视)
    如果一个元素被设置了position:absolute/fixed,则该元素不能被设置为float,因为这是两个不同的流,一个是浮动流,另外一个是‘定位流’

  • 盒子排列

  • 1.左浮动的盒子靠上靠左排列

  • 2.右浮动的盒子靠上靠右排列

  • 3.浮动盒子包含在排列的时候,会避开常规流的排列

  • 4.常规流盒子在排列的时候,无视浮动盒子

  • 5.行盒在排列时会避开浮动盒子如果没有文字在行盒中,浏览器会自动生成一个行盒包裹文字,该行盒叫匿名行盒

  • 6.外边距合并不会发生

  • 高度塌陷:原因:常规流盒子的自动高度,在计算时,不会考虑浮动盒子

  • 清除浮动:涉及的CSS属性:

  • 1.clear:none

  • both/left/right:清除左右浮动,该元素必须出现在所浮动的下方

  • 2.clearfix::after{
    content:''
    display:block
    clear:both
    }

  • 定位

  • 手动控制元素在包含块的精确位置

  • position属性值:

  • 默认值:static静态定位(不定位)

  • relative相对定位

  • absolute绝对定位

  • fixed固定定位

  • 一个元素只要position的值不是static认为该元素是一个定位元素

  • 定位元素会脱离文档流、相对定位除外

  • 一个脱离文档流的元素:

  • 1.文档流的元素摆放时,会忽略脱离了文档流的元素

  • 2.文档流中元素计算自动高度时,会忽略脱离了文档流的元素

  • 相对定位:

  • 不会导致文档脱离文档流,只是让元素在原来位置上进行偏移

  • 盒子的偏移不会对其他盒子造成任何影响

  • 绝对定位

  • 1.高度为auto,适应内容

  • 2.包含块的变化:找祖先元素中第一个定位元素,该元素的填充盒

  • 固定定位

  • 1.其他情况和绝对定位完全一样

  • 2.包含块不一样,固定为视口(浏览器的可视窗口)

  • 定位的居中

  • 多个定位元素重叠时:堆叠上下文,只有定位元素设置z-index有效,可以是负数,设置z-index,通常情况下值越大,越靠近用户,常规流和定位元素可覆盖浮动

  • 绝对定位,固定定位一定是块盒

  • 绝对定位,固定定位一定不是浮动

表单元素

  • 主要用于收集用户数据
  • 1.input元素,type='text'/'password'密码/'date'日期选择框/'serch'搜索框/'range'划块选择器/‘color’颜色选择/'number'数字输入框/'checkbox'多选框/‘radio’单选框
  • value:输入框的值
  • placeholder属性,显示提示的文本,文本框没有内容时显示
  • input元素可以制造按钮,当type的值为reset,button,submit时
  • 2.select元素,下拉列表选择框,mutble多选
  • 通常和option元素配合使用(下拉列表的选项)
  • selected='selected'默认选中
  • <opygroup label=''></opygroup>下拉框选择分组,分组是不能选择的
  • 3.fextarea元素:文本域,多行文本框,col横向多少字,rows可写多少行,没有空白折叠
  • 4.按钮元素:button,type属性:reset,submit,button默认值是submit
  • 5.表单状态:readonly表示只读,不会改变显示样式;disabled是否禁用,会改变现实样式
  • 6.配合表单元素的其他元素
  • label通常配合多选和单选框使用,显示关联
  • <input id='radmore' type='radio'>可通过for属性让lable元素关联某一个表单元素,for属性书写表单元素id的值
  • <lable for='radmore'>男</lable>
  • 隐式关联,input套在lable之中
  • datelist数据列表,该元素本身不会显示到页面,通常用于和普通文本框配合使用,
  • <datalist id='userAgen'>
    <option value=""></option>
    </datalist>
    <input type="text" list='userAgen'>
  • 7.form元素:通常会将整个表单元素放置到form元素的内部,作用是当提交表单时,会将form元素,内部的表单内容以后合适的方式提交到服务器。
  • 8.fieldset元素,表单分组
  • 9.美化表单元素
  • 新的伪类
  • focus
  • checked单选和多选被选中的样式
  • 常见用法:
  • a.重置表单元素样式
  • b.设置textarea是否允许调整尺寸,resize:both/none/horizontal(水平方向可以)/vertical(垂直方向可以)
  • c.文本框边缘到内容的距离:方式一:使用padding,方式二:使用text-indent首行缩进
  • d.控制单选和多选的样式

表格元素

表格不用使用于网页布局表格的渲染速度更慢

其他元素 元素周期表

  • <abbr>缩写词
  • <tim>提供给浏览器
  • <b>区分同等重要的元素,主要用于加粗字体,dataTime属性
  • <q>表示一小段引用文本,cite属性表示引用 来自哪里
  • <blockquote>表示一大段引用的文本,cite属性表示引用 来自哪里
  • <hr>分割线
  • meta name ='' description='' content=''用于搜索引擎优化
  • <link>链接外部资源,rel属性:relation,链接的资源和当前网页的关系,type属性:MIME类型链接的资源类型

其他

  • 1.透明度
  • opacity它设置的是整个元素的透明,它的取值0~1
  • 在颜色位置设置alpha通道(rgba)
  • 2.鼠标
  • 用cursor设置,默认值auto
  • cursor:url('../../icom')也可以自定义
  • 3.盒子隐藏
  • display:none不生成盒子
  • visibility:hidden生成盒子,只是从视角上移除盒子,盒子仍然占据空间
  • 4.背景图
  • img属于HTML的概念
  • 背景图属于css的概念
  • 当图片属于网页内容时,必须使用img图片
  • 当图片仅用于美化页面页面时,必须使用背景图
  • 设计的css属性
  • background-img:背景图会在X轴好Y轴重复
  • background-reapt:
  • background-size:预设值contain cover,类似于object-fit,数值或百分比相对于盒子
  • background-position:center(横、纵向居中),top/botton/left/right,雪碧图(精灵图)(spirit)
  • background-attachment:通常用它控制背景图是否固定,fixed
  • 背景图和背景颜色混用
  • 速写(简写)background:背景图,重复,尺寸,50% 50% ,100%,fixed,颜色
  • 5.ifram元素:可替换元素
  • 通常是行盒
  • 通常显示的内容取决于元素的属性
  • css不能完全控制其中的样式
  • 具有行块盒的特点
  • 6.@规则
  • import:'路径',导入另外一个文件
  • charset=‘utf-8’必须写到第一行,告诉浏览器该字符编码
  • 7.web字体和图标
  • font-family:'...'
  • 当用户电脑上没有安装相应字体时,强制让用户下载该字体
  • 使用@font-face{
    font-family;‘名字’
    src='url=(../..);'
    }
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,372评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,368评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,415评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,157评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,171评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,125评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,028评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,887评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,310评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,533评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,690评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,411评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,004评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,812评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,693评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,577评论 2 353

推荐阅读更多精彩内容

  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 2,639评论 0 30
  • 本课来自http://www.imooc.com/learn/9请不要用作商业用途。 HTML5 HTML介绍 H...
    PYLON阅读 3,223评论 0 5
  • 1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度、行高及外...
    极乐君阅读 2,416评论 0 20
  • 前言:作为一名前端小白。html与css的入门很重要,以下资料大多是跟李南江老师学习记录并加上自己的一些见解。 什...
    小懵没被占用阅读 706评论 0 0
  • 一、html 1.1 排版标签 标题: ~ 段落: 换行: 水平线: 1.2 文本格式化标签 加粗: ...
    AizawaSayo阅读 1,256评论 0 16