• HTML+CSS基础小笔记再整理


    1、
    font的两个必须要写的:font-size 和 font-family
    text-indent 首行缩进(em)1em=一个文字大小
    text-algin 对齐方式:left、center、right
    text-decortion 文本修饰: underline(下划线)overline(上划线)line-through(删除线)none(无)
    letter-spacing 字间距(为0时字间距本身为1个像素,若为5px则字间距实际为6px)
    word-spacing 词间距(先用空格将词组分开,否则没效果,注意空格也占几个像素)
    line-height:行高,字的顶部到下一行字的顶部的像素

    2、<a> href:
    超链接 <a href="xxx.html">跳转页面</a>
    压缩包下载:<a href=“xxx.rar">压缩包下载</a>
    锚点(id):<a href="#div1">跳转指定id位置</a>
    eg:<a href="http://sohu.com/#sogou-search">直接跳到搜狐页面的指定id位置</a>


    3、base:写在<head></head>之间
    <base target="_blank" href="www.baidu.com"> 指定文档中所有<a>标签的默认


    4、常用标签
    section 版块 用于划分页面上的不同区域,或者划分文章里不同的节
     
    header 页面头部或者版块(section)头
     
    footer 页面底部或者(section)底部
     
    <header></header>
    <section>
    <header></header>
    <footer></footer>
    </section>
    <footer></footer>
     
    nav 导航 (包含链接的的一个列表)<nav></nav>
     
    article 用来在页面中表示一套结构完整且独立的内容部分.可以用来呈现论坛的一个帖子,
    杂志或报纸中的一篇文章,一篇博客,用户提交的评论内容,可互动的页面模块挂件等。<article></article>
     
    aside 元素标签可以包含与当前页面或主要内容相关的引用、侧边栏、广告、nav元素组,
    以及其他类似的有别与主要内容的部分 <aside></aside>
     
    1)被包含在<article>中作为主要内容的附属信息部分,其中的内容 以是与当前文章有关的引用、词汇列表等
    2)在<article>之外使用,作为页面或站点全局的附属信息部分;最典型的形式是侧边栏(sidebar),
    其中的内容可以是友情链接、附属导航或广告单元等。
     
    time 里面写时间 <time></time>


    5、文件路径:
    绝对路径:完整的固定的路径地址、网站地址
    相对路径:以当前页面的地址为对象来表示路径地址


    6、搜索引擎通过标签来判断用户搜索内容---标签语义化
    SEM 搜索引擎营销
    SEO 搜索引擎优化


    7、css选择器的优先级
    选择器的优先级一致的情况下,后面的会覆盖前面相同的属性
    !import > 行间样式style > id选择器 > class选择器 > 类型tag选择器 > 通配符* > 默认
    包含(父子)选择器 > 单个选择器 = 群组选择器
    内联样式表(标签内部)> 嵌入样式表(当前文件中)> 外部样式表(外部文件中)
     

     

    8、块元素和内嵌(内联、行内)元素:
    块:
    1)默认独占一行
    2)支持所有css样式
    3)不设置宽度的时候,宽度默认撑满整行
    内嵌:
    1)同一行上可以显示同类的标签
    2)不支持宽高
    3)不支持上下的margin和padding样式
    4)宽高由内容撑开
    5)代码换行会被解析成空格
     
    想让内联元素具备块元素特征:display:block;
    想让块元素具备内敛元素特征:display:inline;
    想让元素既支持内敛也支持块元素特征:display:inline-block;
     
    内敛块:
    1)块元素能在一行显示
    2)行内元素支持宽高
    3)没有宽度的时候内容撑开宽度
    4)标签之间的换行间隙被解析成空格
    5)ie6 ie7不支持块属性标签的inline-block


    9.浮动:
    float:left | right | none | inherit;
     
    文档流是文档中可显示对象在排列时所占用的位置。
     
    浮动的定义:使元素脱离文档流,按照指定方向发生移动,遇到父级边界或者相邻的浮动元素停下来
     
    clear:left | right | both | none | inherit;指定元素的某个方向上不能有浮动元素
     
    clear:both; 在左右两侧均不允许浮动元素。
     
    float特征:
     
    1)块在一排显示
    2)内联支持宽高
    3)默认内容撑开宽度
    4)脱离文档流
    5)提升层级半层
     


    10.清除浮动的方法
     
    1)加高:给父级元素一个高度,缺点是扩展性不好,若高度不固定,加高清除失效
    2)父级浮动:给各类父级元素设置float,问题是页面中所有元素都要加浮动,而且margin左右auto居中失效
    3)inline-block方法:给父级加display:inline-block; 问题是导致margin左右auto失效
    4)空标签清除浮动:在浮动元素同级位置加一个空标签<div class="clearfix"></div> css: .clearfix{clear:both;}
    问题:IE6 最小高度 19px;(解决后IE6下还有2px偏差) ,每个浮动元素后都要加空标签
    5)br清除浮动:浮动元素后加 <br clear="all"/> 问题:不符合工作中结构、样式、行为,三者分离的要求。每个浮动元素后都要加
    6)after伪类清浮动方法(现在主流方法) :给浮动元素的父级添加一个clear类,并设置css样式为:
    .clear:after{content:'';display:block;clear:both;} .clear{zoom:1;} (zoom兼容ie6、ie7)
    after伪类: 元素内部末尾添加内容;
    :after{content"添加的内容";} IE6,7下不兼容
    zoom 缩放
    a、触发 IE下 haslayout,使元素根据自身内容计算宽高。
    b、FF 不支持
    7)overflow:hidden; 清除浮动:给父级元素加。 问题:需要配合 宽度 或者 zoom 兼容IE6 IE7;
    overflow: scroll | auto | hidden;overflow:hidden;溢出隐藏


    11、定位position:relative | absolute | fixed | static | inherit;
     
    1)relative相对定位/定位偏移量position:relative; 特征
    a、不影响元素本身的特性;
    b、不使元素脱离文档流(元素移动之后原始位置会被保留);
    c、如果没有定位偏移量,对元素本身没有任何影响;
    d、提升层级
     
    定位元素位置控制 top/right/bottom/left 定位元素偏移量。
     
    2)absolute绝对定位/定位层级position:absolute; 特征
    a、使元素完全脱离文档流;(原始位置消失,元素相当于隐形了)
    b、使内嵌支持宽高;
    c、块属性标签内容撑开宽度;
    d、如果有定位父级相对于定位父级发生偏移,没有定位父级相对于document发生偏移;
    e、相对定位一般都是配合绝对定位元素使用;
    f、提升层级
     
    z-index:[number]; 定位层级
    a、定位元素默认后者层级高于前者;
    b、建议在兄弟标签之间比较层级
    eg:z-index:1; 向前提升一个层级,
    z-index:[number]; 定位层级
     
    3)fixed 固定定位:
     
    与绝对定位的特性基本一致,的差别是始终相对整个文档进行定位; 问题:IE6不支持固定定位;


    12、透明度
    标准浏览器:opacity:0-1;
    IE6、7下:filter:alpha(opacity=0-100)


    13、表格样式重置
    table{border-collapse:collapse;} 单元格间隙合并
    th,td{padding:0;}重置单元格默认填充
    合并单元格
    colspan 属性规定单元格可横跨的列数。 <td colspan="2"></td>
    rowspan 属性规定单元格可横跨的行数。 <td rowspan="2"></td>
     


     
    14、兼容(标准浏览器一般都兼容,主要看IE6、7)
    1)H5兼容 IE6、IE7不支持H5标签,解决方案:需将h5标签变成block元素,后用js创建标签 (document.createElement("section"))
    若含有很多h5标签,引用 html5shiv.js 文件解决。
    2)元素浮动之后,能设置宽度的话就给元素加宽度.如果需要宽度是内容撑开,就给它里边的块元素加上浮动;
    3)第一块元素浮动,第二块元素加margin值等于第一块元素,在IE6下会有一条空隙问题; 解决方案:第二块元素要用浮动float。
    4)IE6下子元素超出父级宽高,会把父级的宽高撑开 。解决方案:子元素宽高不要超过父级元素宽高!
    5)<p><h1-6><td>包含块元素嵌套规则,块元素在所有浏览器中不被这三个标签包含,直接变成同级关系。
    6)margin兼容性问题,上下margin叠压问题,解决方案是避免多个元素上下margin同时存在,只使用一个方向的margin。
    在浏览器中子元素margin-top会传递给父级元素,解决方案是触发BFC和haslayout
    给父元素加overflow:hidden;触发BFC 。 给父元素加zoom:1;触发haslayout
     
    BFC (block formatting context) 标准浏览器 :
    a、float的值不为none。
    b、overflow的值不为visible。
    c、display的值为table-cell, table-caption, inline-block中的任何一个。
    d、position的值不为relative和static。
    e、width|height|min-width|min-height:(!aotu)
    haslayout IE浏览器 :
    a、writing-mode:tb-rl
    b、-ms-writing-mode:tb-rl
    c、zoom:(!normal)
    7)display:inline-block兼容 IE6下不支持。解决方案:使用css hack(*)。在display:inline-block;后加上*display:inline; *zoom:1;
    8)IE6最小高度问题。height:1px;在IE6下最小高度不是1px是19px; 解决方案:*overflow:hidden;
    9)IE6双边距。在设置了float:left后设置margin-left会导致双边距现象;比如float:left;margin-left:50px;在IE6下会距离左边100px。
    解决方案:针对IE6,添加 *display:inline;
    10)li子元素都浮动的情况下,li下方会产生4px间隙。解决方案:给li添加 *vertical-align:top;
    11)两个浮动元素中间有注释或者内联元素并且和父级宽度相差不超过3px时会出现溢出文字的情况
    解决方案:两个浮动元素中间避免出现内联元素或者注释 或者 与父级宽度相差3px或以上
    12)IE67下父元素overflow:hidden;包不住子元素的relative相对定位
    解决方案:针对ie6、7给父级元素添加相对定位 *position:relative;
    13)IE6下绝对定位元素的父级元素宽高是奇数,绝对定位元素设置的right和bottom值会有1px的偏差 。
    解决方案:避免父级宽高出现奇数
    14)IE6下绝对定位元素和浮动元素并列绝对定位元素消失 。解决方案:避免在同一级,可以用<p>包住内敛元素。
    15)IE6下input会有上下1px空隙问题 。解决方案:给input添加 *float:left;
    16)IE6下输入类型表单控件随输入内容增加,背景图片不固定的问题。解决:设置background-attachment:fixed;
     
     
    CSS hack:针对不同的浏览器写不同的CSS 样式的过程,就叫CSS hack!
     
    div{
    200px;
    height: 200px;
    background-color: red
    background-color: blue9;
    *background-color: green;
    _background-color: yellow;
    }
    书写顺序,从上到下范围依次减小。
    9 IE10以及IE10以下版本的
    * IE7以及IE7以下版本的
    _ IE6以及IE6以下版本的
     
    17)PNG24 兼容性问题:IE6不支持PNG24,出现背景。
    解决方案:
    使用PNG8
    或者:
    JS插件:DD_belatedPNG_0.0.8a.js(问题:不能处理body之上png24) ;执行js插件中的函数:DD_belatedPNG.fix('xxx');
    原生滤镜:在body样式添加这两句:
    _background-image:none;
    _filter : progid:DXImageTransform.Microsoft.AlphaImageLoader(src="XX.png", sizingMethod="crop");
     
     
     
    兼容IE代码:
     
    <!--[if !IE 7]>
     
    <style type="text/css">
     
    #wrap {display:table;height:100%}
     
    </style>
     
    < ![endif]-->



     

    零散知识点
     
    background-position:-70px -40px;
    图片以容器左上角为参考向左偏移70px,向上偏移 40px,即图片的左边70px和上边的40px都在容器之外,容器内只显示剩下的部分。为负数是向右下。
     
     
     


    css盒模型:
     
    标准 w3c 盒子模型的范围包括 margin、border、padding、content,并且 content 部分不包含其他部分。
     
    ie 盒子模型的范围也包括 margin、border、padding、content,和标准 w3c 盒子模型不同的是:ie 盒子模型的 content 部分包含了 border 和 padding。
     
    例:一个盒子的 margin 为 20px,border 为 1px,padding 为 10px,content 的宽为 200px、高为 50px。
    用标准 w3c 盒子模型(也包括ie7以上)解释:
    那么这个盒子需要占据的位置为:宽 20*2+1*2+10*2+200=262px、高 20*2+1*2*10*2+50=112px。
    盒子的实际大小(有背景颜色的区域)为:宽 1*2+10*2+200=222px、高 1*2+10*2+50=72px。
     
    用ie 6及其以下盒子模型:
    那么这个盒子需要占据的位置为:宽 20*2+200=240px、高 20*2+50=70px
    盒子的实际大小为:宽 200px、高 50px。
  • 相关阅读:
    WPF中C#代码触发鼠标点击事件
    PHP代码实现强制换行
    C#中判断系统的架构(32位,还是64位)
    WPF的System.Windows.Threading.DispatcherTimer的使用(每隔一定的时间重复做某事)
    LINQ to Objects系列(2)两种查询语法介绍
    LINQ to Objects系列(1)相关技术准备
    常用技术社区和网站总结
    .net项目技术选型总结
    java与.net比较学习系列(7) 属性
    java与.net比较学习系列(6) 数组
  • 原文地址:https://www.cnblogs.com/hello-web/p/7221414.html
Copyright © 2020-2023  润新知