CSS基础

HTML

  • 图片宽高只设置一个的话,另一个也会等比例变化。
  • 图片相关
    gif:支持颜色少,支持简单透明,动态图
    jpeg(jpg):支持颜色多,不支持透明,可压缩,一般照片使用该格式
    png:支持颜色多,并且支持复杂透明,不支持动态图
  • 超链接
<a href='#'/> :#自动回到页面顶部
<a href='http://www.baidu.com' target='tom'> :tom对应的是iframe的name属性,在内联框架里面显示a标签链接内容
<a href='#bottom'/>:对应是某个标签的id ,可以实现页面内部跳转
<a href='mailto:abc@163.com'/>:会自动打开电脑安装的默认的邮件客户端,并且会自动填写上收件人地址,此时是abc@163.com。没有默认邮件客户端,各个浏览器处理方式不同。
<a/>:元素可以包含任意元素,除了它本身
  • p:虽然是块级元素,但是不能包含任何其他的块级元素。
  • 行高:其实就是添加的上下padding

选择器

  • 交集选择器
<style>
    span.p2{
        color: red;
    }
</style>
<span class="p2">asvchan</span>
说明:既需要是span元素还要有p2的class值,要区别于并集选择器
  • 并集选择器
<style>
    span,.p2{
        color: red;
    }
</style>
<p class="p2">asavc</p>
<span>asvchan</span>
  • 后代选择器
<div><span>hehe</span></dvi>
<div>
    <p>
        <span>esh</span>
    </p>
</div>
div  span{
            color: red;
}
说明:都变红
  • 子元素选择器
div>span{
    color: red;
}
<div><span>hehe</span></dvi>
<div>
    <p>
        <span>esh</span>
    </p>
</div>
说明:只有第一个变红
  • 属性选择器
<body>
    <p title="标题">测试</p>
    <p>测试</p>
    <p>测试</p>
    <p title="hello">测试</p>
</body>
p[title]{
    color: red;
}
p[title="hello"]{
    color: yellow;
}
//以hehe开头的
p[title^="hehe"]{
    color: yellow;
}
//以hehe结尾
p[title$="hehe"]{
    color: yellow;
}
//包含hehe
p[title*="hehe"]{
    color: yellow;
}
说明:第一个p红色,最后一个黄色
  • 子元素选择器
<style>
       p:first-child{
           color: aquamarine;
       }
       p:last-child{
           color: blue;
       }
       p:nth-child(3){
           color: red;
       }
       /* 下一个兄弟选择器,此时是第二个 */
       p:first-child+p{
           color:yellow;
       }
       /* 补充:
       span~p{
           会选中span后面所有的p
        }
        */
       /* even:偶数 */
       /* odd 奇数 */
       p:nth-child(even){
           background-color: aliceblue;
       }
    </style>
</head>
<body>
    <p>测试</p>
    <p>测试</p>
    <p>测试</p>
    <p>测试</p>
</body>
</html>
图一
说明:上面三种,针对的是内部所有的子元素排序,如果对应条目不是p(或者)
其他标签,则不起作用

说明:下面三种是针对对应元素其实进行设置,此时即使增加了span,也会
查找p的第N个进行设置
  • 对比:
<style>
       p:first-of-type{
           color: aquamarine;
       }
       p:last-of-type{
           color: blue;
       }
       p:nth-of-type(3){
           color: red;
       }
    </style>
</head>
<body>
    <span>csg</span>
    <p>测试</p>
    <p>测试</p>
    <p>测试</p>
    <p>测试</p>
</body>
</html>
  • 否定伪类
<style>
      p:not(.hello){
          background-color: aqua;
      }
    </style>
</head>
<body>
    <p>测试</p>
    <p class="hello">测试</p>
    <p>测试</p>
    <p>测试</p>
</body>
</html>
说明:除了第二条,都有背景色
  • 样式的继承

背景相关都不会被继承,可以在w3c查询继承性

  • 选择器优先级
规则:
    内联样式 优先级1000
    id选择器 优先级100
    类和伪类  优先级10
    元素选择器 优先级1
    通配* 优先级0
    继承的样式 没有优先级
注意:
如果优先级一样,则使用靠后的样式(css中后书写的样式)
并集选择器优先级会单独计算
优先级不论怎么叠加都不会超过上一个优先级(不论按照数字计算)
在样式的最后添加!important,则此时该样式会获得一个最高的优先级

伪类的顺序

  • 例如a标签的四种伪类选择器:link(正常),visited(访问过)
  • hover(鼠标覆盖),active(鼠标点击)
  • 一般书写顺序是: link visited hover active
  • 因为四个优先级一样,状态不是点击过就是未点击过,所以如果写在hover
  • 和active之后会覆盖这两者的样式(优先级一样,后书写的生效)
  • 所以link visited必须在前面(这两个顺序无所谓),同理hover active
  • 必须在后面,而且active必须在最后面。

font

  • font-size:字体都有一个看不到的框框,一般此属性设置的都是 框框的大小,
    所以一般字真的大小都是小于font-size(但是针对不同字体,可能字体比框框大)
<div>测试</div>
<style>
        div{
            font: italic bold 100px/300px "微软雅黑"
        }
</style>
说明:italic是斜体(对应font-style) bold是加粗(对应font-weight),
不论顺序,但是字体大小(倒数第二个)和font-family(必须最后)必须存在
  • 行间距(行与行之间的间距,上一行的下划线和下一行的上划线之间的距离,不是行内两条线的间距)
行间距=行高-字体大小
如果设置百分比,是相对于字体的大小进行计算的。
直接传数字,则行高会设置字体大小相应的倍数
如果把line-height:写在font上面,则会无效,因为font里面如果不再次设置line-height则会使用默认值
会覆盖上面的line-height。

盒模型

- 背景色=padding+content
- 盒子宽高=padding+content+border

margin

-  margin(外边距):会影响盒子的位置,不会影响盒子的大小
-  margin可以设置为auto,auto一般只设置给水平方向的margin,垂直方向设置auto无效相当于设置0
-  如果只指定左外边距或者右外边距的margin为auto则会将外边距设置为最大值(效果是:完全靠右或者完全靠左)

垂直外边距的重叠

- 在网页中相邻的垂直方向的外边距会发生外边距的重叠
所谓的外边距重叠指的是兄弟元素之间的相邻外边距会取最大值而不是取和。
如果父子元素的垂直外边距相邻了,则子元素的外边距会设置给父元素。
兄弟外边距重叠
父子外边距重叠

内联元素

  • 内联元素不能设置width和height
  • 设置水平内边距,内联元素可以设置水平方向的内边距
  • 垂直方向内边距,内联元素可以设置垂直方向内边距,但不会影响页面的布局
  • 为元素设置边框,内联元素可以设置边框,但是垂直的的边框不会影响到页面的布局
  • 内联元素支持水平方向的外边距,水平方向外边距不会重叠而是求和
  • 内联元素不支持垂直方向的外边距

display

  • display:inline

转换为行内元素,不可以设置宽高

  • display:block

转换为块级元素,可以设置宽高,独占一行

  • display:inline-block

既可以设置宽高,又不独占一行(例如:img标签)

  • display:none

隐藏元素,并且不占用位置
对比:visibility属性规定元素是否可见,有两个值visible(默认值),hidden(元素不可见,但是占据位置)

overflow

- visible:默认值,不会对溢出的部分做处理
- hidden:裁剪溢出的部分
- scroll:会为父元素添加滚动条,拖动滚动条来查看内容
- auto:如果内容溢出则显示滚动条

文档流

脱离文档流的方式

  • 浮动
  • 定位

浮动

  • 在文档流中,父元素高度(不包括宽度)可以靠子元素高度撑起来
  • 但是当子元素设置浮动之后,无法撑起父元素的高度,导致父元素高度塌陷
  • 父元素高度塌陷,则父元素下面的所有元素都会向上个,影响页面整体布局
  • 浮动的元素没有margin的重叠,会合并计算

清除浮动

就是在受影响的标签最后加上一个div,这样就可以避免浮动造成的影响(例如:父元素高度塌陷)

<style>
        ul{
            background-color: blue;
        }
        li{
            width: 50px;
            height: 50px;
            float: left;
            list-style: none;
        }
        .clearfix::after{
            content: '';
            display: table;
            clear: both;
        }
    </style>
</head>
<body>
    <ul class="clearfix">
        <li >1</li>
        <li >1</li>
        <li >1</li>
        <li >1</li>
        <li >1</li>
        <li >1</li>
    </ul>
</body>

补充

.clearfix::after,.clearfix::before{
            content: '';
            display: table;
        }
        .clearfix::after{
            clear: both;            
        }
        .clearfix{
            zoom: 1;
        }

:after针对是清除浮动,:before针对的是margin的重叠(父子之间的重叠),注意:浮动元素不存在margin的重叠,此时两个虽然写在一起,但是一个是针对浮动的一个是针对标准文档流的。

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

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,751评论 1 92
  • CSS 是什么 css(Cascading Style Sheets),层叠样式表,选择器{属性:值;属性:值}h...
    崔敏嫣阅读 1,482评论 0 5
  • CSS基础 本文包括CSS基础知识选择器(重要!!!)继承、特殊性、层叠、重要性CSS格式化排版单位和值盒模型浮动...
    廖少少阅读 3,079评论 0 40
  • 成王败寇。 成了,当年那些说不出口的事情,后来都可以拿来当趣事讲了。 败了,当年多么相爱多么甜蜜,后来也只能说着烟...
    小样儿1010阅读 167评论 0 0
  • 不知伊人何处阅读 77评论 0 1