CSS样式全部属性和难记忆点(归纳)

尾调极昼
• 阅读 4523

有一些CSS的冷门样式太多了,但是又想记住,可以看这篇文章,这篇文章包括了一些css需要记忆的一些属性,不包括平时经常使用的(相信你已经接触的太多了)
CSS样式全部属性和难记忆点(归纳)

伪类选择器

:link未访问
:visited已访问
:hover鼠标移动到链接上
:active选定的链接

文字阴影

简写:
text-shadow:水平位置 垂直位置 模糊距离 阴影颜色;

text-indent:首行缩进 ;
word-spacing: 单词间距;
letter-spacing:字间距;

link答疑

type="text/css"在link中可以忽略不写,写了比较规范,rel定义当前文档和被链接文档之间的关系,在这里需要指定为“stylesheet”,表示被链接的文档是一个样式文件

行内元素&块级元素

行内元素:高宽无效,水平的paddingmargin有效,但垂直方向无效

常见的行内元素:<a> <strong> <b> <i> <del> <s> <ins> <u> <span>

块级元素:高宽有效,都可以自定义

选择器

交集选择器

p.one{color:red;font-size:14px;}

是“即...又...的意思”,p.one选择的是类名为.one的 段落标签

并集选择器(逗号分割)

.one,p,#test{color:red;}

伪元素选择器

E::first-letter 文本的第一个单纯或字

E::first-line 文本第一行

E::selection 改变文本选中的样式(有点好用)

E::befor和E::after 该元素是行内元素 结合content使用

“:”和“::”在于区分伪类和伪元素

背景(background)

background-image:none/url(url)
属性作用
background-color背景颜色色值/inherit(继承父元素)/transparent(默认)
background-image背景图片地址none/url()
background-repeat是否平铺repeat/no-repeat/repeat-y/repeat-x
background-position背景位置length length (百分数) / positon postiontop/center/bottom/left/right
background-attachment背景是固定还是滚动scroll(滚动) fixed(固定)
背景的合写(复合属性)
background:背景颜色 背景图片地址 背景平铺 背景滚动 背景位置; background: transparent url(*1111.jpg*) no-repeat scroll 50% 0;
background-size设置图片尺寸px 百分比/cover(保证填充满背景区域,溢出部分隐藏)/contain(保证图片始终完整显示在背景区域) 例如:background-size:50%;比原来小一半

一般使用习惯(参考):

  .img {
            width: 400px;
            height: 400px;
            border: 1px solid #fff;
            background: #fff url(1111.jpg) no-repeat;
            background-position: 30px 50px;
            background-size: 200px 210px;
        }

文本修饰

`text-decoration`   修饰文本
描述
none默认
underline定义文本下的一条线。下划线自带的
overline定义文本上的一条线
line-through定义穿过文本的一条线

盒子模型

应该都比较熟悉,只讲几个比较容易忘记的属性

border-style

属性作用
none没有边框
solid边框是单实线(常用)
dashed边框为虚线
dotted边框为点线
double边框为双实线

表格table的边框

table{border-collapse:collapse;}`collapse`单词是合并的意思。表示边框合并在一起

外边距实现盒子居中

可以让一个盒子实现水平居中:

.header{width:960px; margin:0 auto;}
文字居中:text-align:center;

相邻块元素垂直外边距的合并(容易出现的bug)

1.上下相邻的元素,上:margin-bottom,下:margin-top,会发生合并(外边距塌陷),合并的边距值等于其中大的那者
CSS样式全部属性和难记忆点(归纳)
解决方法:避免

2.嵌套元素垂直外边距的合并
CSS样式全部属性和难记忆点(归纳)
解决方案:
1.为父元素定义1像素的上边框
2.可以为父元素添加:overflow:hidden(触发BFC)

CSS盒模型

box-sizing:content-box;默认

box-sizing:border-box;盒子大小为width,也就是说paddingborder都包含到了width里面

盒子阴影

box-shadow:水平 垂直 模糊距离 阴影尺寸 颜色 内/外阴影;

想要内阴影就用inset

实际用法:box-shadow:0 15px 30px rgba(0,0,0,.4);

CSS定位

CSS的定位机制有三种:普通流(标准流)、浮动定位

清除浮动

解决父级元素因为子浮动引起的内部高度为0的问题
应用场景:比如文章,做瀑布流布局等等,很多时候我们不需要给父盒子高度,因为比如文章的内容你是无法估量其高度的,我们需要自适应地撑开盒子。所以才会清除浮动。

解决方法:

1.选择器{clear:both;}

2.父级添加overflow:hidden;,触发BFC的方式实现清除浮动效果

3.:after 案例:百度 淘宝网 网易

 .clearfix::after{
            content: ".";
            display: block;
            height: 0;
            clear: both;
            visibility: hidden;
        }
        .clearfix{
            *zoom: 1;
        }

4.beforeafter 案例:小米 腾讯 代码更简洁

  .clearfix::after,.clearfix:before {
            content: ".";
            display: table;/* 这句话可以触发BFC */
        }

        .clearfix::after {
            clear: both;
        }

        .clearfix {
            *zoom: 1;
        }
给父盒子的class属性添加clearfix就可以使用了

定位

描述是否脱标占用位置移动位置基准
static自动定位(默认)不脱标,正常模式正常模式
relative相对定位不脱标,占有位置相对自身位置移动(自恋型)
absolute绝对定位完全脱标,不占有位置相对于定位父级移动位置(拼爹型)
fixed固定定位(相对于浏览器窗口进行定位)完全脱标,不占有位置相对于浏览器移动位置(认死理型)
Tip:“子绝父相”牢记于心

绝对定位中的盒子水平/垂直居中

绝对定位的盒子margin无效

解决方法:

  1. left:50%
  2. 走自己外边距负的一半:margin-left

z-index

默认是0,属性越大,定位元素位置越居上。

只有relative,absolute,fixed可以使用这个属性

元素的显示隐藏

overflow display visibility比较常见

display

none隐藏对象
block转换块级元素,显示元素

visibility

visible对象可见
hidden对象可视

overflow

auto超出自动显示滚动条,不超出不显示滚动条
hidden不显示超过对象尺寸的内容,超出的部分隐藏
scroll不管超出内容否,总是显示滚动条

CSS高级技巧

鼠标cursor

cursor:default 小白  |  pointer 小手  |  move 移动  |  text 文本;
尽量不要用hand,火狐不支持
pointer: ie6以上支持

轮廓outline

outline:outline-color || outline-style  ||  outline-width

一般不会关心设置多少,去掉就好:outline:0;或outline:none;
(比如在点击表单input时候会默认有一个黑色轮廓,我们可以去掉,也可以用 outline-color: red;改变轮廓颜色)

防止拖拽文本域resize

CSS样式全部属性和难记忆点(归纳)

resize:none可以防止 火狐 谷歌 等浏览器随意拖拽textarea破坏布局

vertical-align垂直对齐

它不影响块级元素的内容对齐,只针对行内和行内块元素,通常用来控制图片/表单与文字的对齐

MDN文档讲述这个属性很棒:

   链接:[https://developer.mozilla.org/zh-CN/docs/Web/CSS/vertical-align](https://developer.mozilla.org/zh-CN/docs/Web/CSS/vertical-align)

去除图片底侧空白缝隙

图片或表单等行内元素,它的底线和父级盒子的基线对齐。这样会造成一个问题,图片底侧会有一个空白缝隙。

解决方法:

  1. 给img vertical-align:middle | top;等等。让图片不要和基线对齐
  2. 给img添加display:block;

溢出的文字隐藏

word-break

主要处理英文单词

属性作用
normal使用浏览器默认的换行规则
break-all运行在单词内换行
keep-all只能在半角空格或连字符处换行

white-space

属性作用
normal默认
nowrap强制在同一内显所有文本,直到文本结束或者遇到<br>才换行

text-overflow文字溢出

设置一个省略标记(...)显示文本的溢出

属性作用
clip不显示(...),简单的裁切
ellipsis当对象内文本溢出时显示省略标记(...)
注意首先要强制一行内显示,然后搭配overflow:hidden;使用

CSS精灵图

很多图片集合到一张内,减少服务器接受和发送请求的次数,提高页面加载速度

使用:用到CSS的background-image,background-repeat,background-position进行背景定位,也可以简写操作

字体图标iconfont

优点:有文字的属性,体积小,几乎支持所有浏览器,移动端必备

格式:.svg

程序员推荐图标字体网站:http://icomoon.io(iconmoon字库,允许用户自定义选择图标使它们生成字型,种类很多,国外网站打开速度比较慢)

如何引入

  1. 创建fonts文件夹,里面包含了字体文件
  2. 在样式内声明字体

    @font-face {  /* 声明字体 */
      font-family: 'icomoon'; /* 自己声明的字体包 */
      src:  url('../fonts/icomoon.eot?8qhwk5'); /* 路径 */
      src:  url('../fonts/icomoon.eot?8qhwk5#iefix') format('embedded-opentype'),
        url('../fonts/icomoon.ttf?8qhwk5') format('truetype'),
        url('../fonts/icomoon.woff?8qhwk5') format('woff'),
        url('../fonts/icomoon.svg?8qhwk5#icomoon') format('svg');
      font-weight: normal;
      font-style: normal;
    }
  3. 给盒子使用字体

    font-family:"icomoon";
  4. 盒子里添加结构

    span::before{
        content:"\e900";
    }
    或者
    <span>□<span>/* □是从网站复制过来的(无法看见)*/

滑动门技术

CSS样式全部属性和难记忆点(归纳)
设置导航栏时候,字数不一样多,比如图里的,怎么适应内部的文本内容呢?
CSS样式全部属性和难记忆点(归纳)

方法:利用CSS(背景位置)和盒子padding撑开宽度。

CSS样式全部属性和难记忆点(归纳)

<li> <li>
           <a href="#">
               <span>导航栏内容</span>
           </a>
       </li>
 a {
            margin: 100px;
            display: inline-block;
            height: 33px;
            background: url() no-repeat;
            padding-left: 15px;
            color: #fff;
            text-decoration: none;
            line-height: 15px;
        }

        a span {
            display: inline-block;
            height: 33px;
            background: url() no-repeat right;
            padding-right: 15px;
        }
  1. a设置背景左侧padding-left:15px;,padding撑开合适宽度
  2. span设置背景右侧padding-right:15px;剩下由文字自身撑开宽度
  3. 之所以a包含span是因为整个导航都是可以点击

动画(太多,系统学习参考文档)

CSS3中使用transition可以实现补间动画(过渡效果)

语法格式:transition:要过渡的属性 花费时间 运动曲线 何时开始;

属性描述CSS
transition简写,设置四个过渡属性3
transition-property规定应用过渡的属性的名字3
transiton-duration定义过渡效果花费的时间。默认是03
transition-timing-function规定过渡效果的时间曲线。默认是"ease"3
transiton-delay规定过渡效果何时开始。默认是03

属性太多,看MDN文档:https://developer.mozilla.org/zh-CN/docs/Web/CSS/transition

flex弹性布局

这块学习比较困难,可以参考我之前写的一篇文章
链接:https://segmentfault.com/a/1190000023520335

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Jacquelyn38 Jacquelyn38
4年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Easter79 Easter79
3年前
Twitter的分布式自增ID算法snowflake (Java版)
概述分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的。有些时候我们希望能使用一种简单一些的ID,并且希望ID能够按照时间有序生成。而twitter的snowflake解决了这种需求,最初Twitter把存储系统从MySQL迁移
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Stella981 Stella981
3年前
Python+Selenium练习篇之5
前面介绍了,XPath,id,class,linktext,partiallinktext,tagname,name七大元素定位方法,本文介绍webdriver支持的最后一个方法:by\_css。css和XPath类似,也需要掌握一些语法,才能写出正确的,完整的css选择表达式。相关脚本代码如下:codingu
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Stella981 Stella981
3年前
Sass
嵌套规则(NestedRules)Sass允许将一套CSS样式嵌套进另一套样式中,内层的样式将它外层的选择器作为父选择器mainp{color:00ff00;width:97%;.redbox{
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
尾调极昼
尾调极昼
Lv1
纵然万劫不复纵然相思入骨我也待你眉眼如初岁月如故.
文章
5
粉丝
0
获赞
0