css

css:层叠样式展示,用于制作静态页面


css样式分为三大类:行间样式、内部样式、外部样式

  • 行间样式:写在body中,缺点:该标签内所有,优先级最高。
  • 内部样式:写在head中,缺点:该页面内所有,优先级比外部样式高。
  • 外部样式:写在.css文件中,通过链接调用,整个工程所有,优先级最低,在实际开发中一般采用外部样式设计。例如<link rel="stylesheet"type="text/css" href="../css/test.css"/

1. 万能居中

1.margin: 0 auto;水平
2.text-align: center;水平
3.行高,垂直
4.表格,center,middle;水平垂直
5.display:table-cell;模拟表格,all
6.绝对定位,50%减自身宽高
7.绝对定位,上下左右全0,margin:auto
8.绝对定位加相对定位。不需要知道宽高
9.IE6,IE7:给父元素设一个font-size:高度/1.14,vertical-align:middle

过度

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
<style>
/* 可以设置不同的进入和离开动画 */
/* 设置持续时间和动画函数 */
.fade-enter-active, .fade-leave-active {
    transition: opacity 2s
}
.fade-enter, .fade-leave-to /* .fade-leave-active, 2.1.8 版本以下 */ {
    opacity: 0
}
</style>
</head>
<body>
<div id = "databinding">
<button v-on:click = "show = !show">点我</button>
<transition name = "fade">
    <p v-show = "show" v-bind:style = "styleobj">动画实例</p>
</transition>
</div>
<script type = "text/javascript">
var vm = new Vue({
el: '#databinding',
    data: {
        show:true,
        styleobj :{
            fontSize:'30px',
            color:'red'
        }
    },
    methods : {
    }
});
</script>
</body>
</html>

2. BFC优化

块格式化上下文, 特性:

  • 使 BFC 内部浮动元素不会到处乱跑;
  • 和浮动元素产生边界。

3. 盒模型哪两种模式?什么区别?如何设置

  • 标准模式: box-sizing: content-box; 宽高不包括内边距和边框
  • 怪异模式: box-sizing: border-box

4. 常用清除浮动的方法,如不清除浮动会怎样?

当父元素不给高度的时候,内部元素不浮动时会撑开, 而浮动的时候,父元素变成一条线, 造成塌陷.

  • 额外标签法(在最后一个浮动标签后,新加一个标签,给其设置clear:both;)(不推荐)
  • 父元素添加overflow:hidden; (触发BFC)
  • 使用after伪元素清除浮动(推荐使用)
  • 使用before和after双伪元素清除浮动

5. 删格化的原理

比如antd的row和col, 将一行等分为24份, col是几就占几份, 底层按百分比实现; 结合媒体查询, 可以实现响应式

6. 纯css实现三角形

// 通过设置border
.box
        {
            width:0px;
            height:0px;

            border-top:50px solid rgba(0,0,0,0);
            border-right:50px solid  rgba(0,0,0,0);
            border-bottom:50px solid green;
            border-left:50px solid  rgba(0,0,0,0);
            }

7. 高度不定,宽100%,内一div高不确定,如何实现垂直居中?

  • verticle-align: middle;
  • 绝对定位50%加translateY(-50%)
  • 绝对定位,上下左右全0,margin:auto

8. 至少两种方式实现自适应搜索

  • rem, em
  • 百分比
  • 媒体查询
  • bs, antd等的栅格布局

9. 设置一段文字的大小为6px

  • 谷歌最小12px, 其他浏览器可以更小
  • 通过transform: scale实现

10. css菊花图

四个小圆点一直旋转

// 父标签
animation: antRotate 1.2s infinite linear;
// 子标签
animation: antSpin 1s infinite linear;
@keyframe antSpin {
  to {
    opacity: 1 
  }
}
@keyframe antRotate {
  to {
    transform: rotate(405)
  }
}
// animation-delay: 逐个延迟0.4s

11. 关于em

 <div style="font-size: 20px">
      123
      <div style="font-size: 2em;width: 2em">456</div>
 </div>
// 此时子元素的font-size为40px, 宽度为80px(还要乘以子元素font-size的系数)

12. 关于vh, vw

vw:viewpoint width,视窗宽度,1vw等于视窗宽度的1%。
vh:viewpoint height,视窗高度,1vh等于视窗高度的1%。
vmin:vw和vh中较小的那个。
vmax:vw和vh中较大的那个。

13. Flex布局

博客园中的flex布局

  • flex-direction控制主副轴
  • flex-wrap控制换行(默认不换行)
  • flex-flow是上两个的结合
  • justify-content主轴对齐方式
  • align-items交叉轴对齐方式

14. overflow原理

  • overflow: hidden能清除块内子元素的浮动影响. 因为该属性进行超出隐藏时需要计算盒子内所有元素的高度, 所以会隐式清除浮动
  • 创建BFC条件(满足一个):
    • float的值不为none;
    • overflow的值不为visible;
    • position的值为fixed / absolute;
    • display的值为table-cell / table-caption / inline-block / flex / inline-flex。

15. 实现自适应的正方形:

  • 使用vw, vh
  • width百分比, height: 0, padding-top(bottom): 50%

16. 标准模式和怪异模式

  • document.compatMode属性可以判断是否是标准模式,当 document.compatMode为“CSS1Compat”,是标准模式,“BackCompat”是怪异模式。
  • 怪异模式是为了兼容旧版本的浏览器, 因为IE低版本document.documentElement.clientWidth获取不到
  • 怪异模式盒模型: box-sizing: border-box; 标准模式: box-sizing: content-box

17. CSS3实现环形进度条

两个对半矩形遮罩, 使用rotate以及overflow: hidden进行旋转

18. css优先级

选择器的特殊性值表述为4个部分,用0,0,0,0表示。

  • ID选择器的特殊性值,加0,1,0,0。
  • 类选择器、属性选择器或伪类,加0,0,1,0。
  • 元素和伪元素,加0,0,0,1。
  • 通配选择器*对特殊性没有贡献,即0,0,0,0。
  • 最后比较特殊的一个标志!important(权重),它没有特殊性值,但它的优先级是最高的,为了方便记忆,可以认为它的特殊性值为1,0,0,0,0。

19.定位position

定位分为四种:相对定位 relative,绝对定位 absolute,固定定位 fixed,没有定位 static。

**relative**:不脱离文档流,提升层级,一般作为父级元素,为子级元素的定位提供参考范围。
**absolute**:脱离文档流,提升层级,一般作为子级元素。
**fixed**:针对于窗口进行定位,脱离文档流,提升层级。加入针对body做固定定位。
           无论鼠标怎么滚动,肉眼观察被定为的元素,位置都是不变的。

注意点:不管是那种定位,子级元素的位置都是针对于父级元素来定的。在实际开发中,子级元素需要定位,父级元素一般也会有定位。

如果父级有定位
绝对定位的子集元素都是针对父级在定位

使子div相对于父div垂直水平居中

.parent-div{
    position: relative;
}
`方法一`
.child-div{
`设置绝对坐标系,然后设置top、left、right、bottom的值相等即可,不一定要都是0。并设置margin:auto;`
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
}
`方法二`
.child-div{
`设置绝对坐标系,让left和top都是50%,这样让目标div的最左边与父级框体的最左相距50%,垂直方向相同.`
`然后再用transform:translate(-50%,-50%)将目标框体向左(上)平移自己宽度(高度)的50%`
     position: absolute;
     left: 50%;
     top: 50%;
     transform: translate(-50%,-50%);
}

20.animation:动画效果
设置动画 animation 时,需要设置三个参数:关键帧名称 时间(多长时间内完成动画展现) 是否循环(不写:默认不循环;infinite:无限循环)在设置完成动画后,需要创建@keyframes方法(关键真名称 同keyframes方法的名称)用大括号编写方法内的运动方式

 #sina{
       position: absolute;
       left : 100px;
       top :100px;
       amination :关键帧名称 10s infinite; /*三个参数中间只有空格 没有其他符号
    }
@keyframes 关键帧名称{
                0%{
                left: xpx;
                top: ypx;
                }
                ....
                ....
               100%{
                 left: wpx;
                 top: zpx;
                 }
        }

21.外边距存在的问题

1.水平方向不存在叠压问题,两个元素水平距离取两个元素左右margin值之和。
2.垂直方向存在叠压问题,取上、下margin值得最大值。
3.在嵌套中,margin存在传递问题。当自己元素有上外边距时,父级元素没有外边距,
  且该父级元素与该子级元素相邻(紧挨着),会造成该父级元素产生上外边距。
**margin的传递问题的解决方案:给父级元素加上外边框或添加内边距。**

22.表单标签 form

表单form:一切与数据交互有关的
action:数据提交的路径
method:提交方式(get,post二选一)

  • get请求:会把请求参数,拼写在请求url的末尾,用问号?连接。以key1=value1&key2=value2的方式
    一般情况下查询请求都是get,因为明文所以有安全隐患,但是效率较高,但有长度限制(1k)
  • post请求:会把请求参数放在“请求体”中,不是明文的。一般情况下用于数据的增删改。安全性有保证,长度无限制。
    表单控件
    input
name属性      表单控件的名字,与数据交互有关,很重要的属性
value属性:框内的数据最终都会传给value。表单控件的值,与数据交互有关,很重要的属性。
type属性
text        文本输入框
password    密码框中密码加密。
submit      提交按钮,将表单的所有数据提交到指定的action
reset       重置按钮,将表单重置
button      自定义按钮
radio       单选框,如果想互斥(只能选男或女),就需要将name属性相同,
            checked="checked"默认为选中状态。
checked     默认选中
checkbox:  向后台传递的是value数组,如果没有相同的name,则向后台传递多个数组,
            每个数组一个value。如果想传一个数组,多个value,必须统一name。
checked     1默认选中
image       有提交功能的图片
file        文件域,上传文件。
email       有邮箱格式校验的text
date        日期
hidden:    具有隐藏域。需要向后台传递内容,又不想在前台界面上看到。
hidden      隐藏域email属性:文本框校验是否含有@。

随机生成16进制的颜色代码

getColorRadom () {
        let randColor = (Math.random() * 0xFFFFFF << 0).toString(16);
        while (randColor.length < 6) {
          randColor = "0" + randColor;
        }
        console.log('randColor----->', "#" + randColor)
        return "#" + randColor;
      },

子元素选择器

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

推荐阅读更多精彩内容

  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 1,803评论 0 6
  • 一、CSS入门 1、css选择器 选择器的作用是“用于确定(选定)要进行样式设定的标签(元素)”。 有若干种形式的...
    宠辱不惊丶岁月静好阅读 1,581评论 0 6
  • 1标准的CSS的盒子模型?与低版本IE的盒子模型有什么不同的? CSS盒子模型:由四个属性组成的外边距(margi...
    秦小婕阅读 1,155评论 0 1
  • 本文主要是起笔记的作用,内容来自慕课网. 认识CSS样式 CSS全称为“层叠样式表 (Cascading Styl...
    0o冻僵的企鹅o0阅读 2,608评论 0 30
  • 概述: CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明: 一、注释: CSS注释以 "/*" 开始,...
    进入web前端阅读 1,950评论 0 8