基础篇|CSS-1

前端开发早已不是所谓的"切图仔",一个优秀的前端开发可以用css实现各种各样的网页效果,css也是基础中的基础,重点中的重点。

css sprite是什么?有什么优缺点?

  • 概念:将多个小图片拼接到一个图片中,通过background-positio 属性和元素尺寸调节需要显示的北京图案
  • 优点:
    • 减少HTTP请求次数,极大的提高页面加载速度
    • 增加图片信息重复度,提高压缩比,减小图片大小
    • 更换风格方便,只需要在其中一张或几张图片上修改颜色或样式即可
  • 缺点:
    • 图片合并麻烦
    • 维护麻烦,修改一个图片可能需要重新布局整个图片样式

display:nonevisibility:hidden的区别是什么

  • 共同点:都可以让元素隐藏
  • 区别
    • display:none可以让元素从这个DOM树中消失,渲染的时候不占任何空间;
    • visibility:hidden元素不会从DOM树中消失,渲染的时候继续占据空间
    • display:none为非继承属性,子孙节点消失时无法通过修改子孙节点的属性使其显示;
    • visibility:hidden为继承属性,子孙节点可以通过修改visibility:visible使其展示
    • 修改display属性通常会造成页面重排,修改visibility只会使本元素重绘;
    • 读屏器不会读到display:none的元素,但可以读到visibility:hidden元素;

link@import的区别

  • linkHTML方式,@importCSS方式
  • 页面加载时link会被同时加载,最大限度支持并行下载,@import会等到页面加载完成后再加载,过多嵌套会导致串行下载,会出现文档样式短暂失效(FOUC);
  • linkXHTML标签,无兼容问题,@import仅在IE5以上版本支持;
  • link的样式权重高于@import的权重

什么是FOUC?如何避免

  • Flash Of Unstyle Content:用户定义样式表加载之前浏览器使用默认样式显示文档,用户样式加载渲染之后再重新显示样式,造成页面闪烁
  • 解决方法:把样式表放在文档的<head>,用link引用

如何创建块级格式化上下文(BFC)?有什么作用

  • BFC(Block Formatting Context),块级格式化上下文,是一个独立渲染的区域,让处于BFC内部的元素与外部元素相互隔离,使内外部的定位不会相互影响
  • 触发条件(以下任意一条):
    • float的值不为none
    • overfolw的值不为visible
    • display的值为table-celltable-captioninline-blockflex之一
    • position的值不为fixedreleative
    • IE下,Layout可通过`zoom:1``触发
  • 与普通文档流的区别
    • 普通文档流
      • 浮动元素不会被父级计算高度
      • 非浮动元素会覆盖浮动元素的位置
      • margin会传递给父级元素
      • 两个相邻元素上下的margin会重叠
    • BFC布局规则
      • 浮动元素会被计算父级高度
      • 非浮动元素不会覆盖浮动元素位置
      • margin不会传递给父级
      • 属于同一个BFC的两个相邻元素上下margin会重叠
  • 开发中的应用
    • 阻止margin重叠
    • 可以包含浮动元素-清除内部浮动,原理是两个div位于同一个BFC区域之中
    • 自适应两栏布局
    • 可以阻止元素被非浮动元素覆盖

对BFC规范的理解

  • 一个页面是由很多个box组成,元素的类型和display属性决定了这个box的类型
  • 不同类型的box会参与不同的Formatting Context,渲染的结果也会不同,不会受到其他box渲染方式的影响

为什么要初始化CSS样式?

  • 因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对css进行初始化就会因为浏览器之间的差异导致显示异常;
  • 但是初始化css样式会对SEO有影响,做不到二者兼得;

css3有哪些新特性

  • 新增选择器:p:nth-child(n){margin-top:10px}
  • 弹性盒模型:display:flex
  • 多列布局:column-count: 5
  • 媒体查询:@media(max-width: 480px) {.box {column-count:1}}
  • 个性化字体:@font-face{font-family: BorderWeb;src:url(BORDERW0.eot)}
  • 颜色透明度:color: rgba(255,0 ,0 ,0.5)
  • 圆角:border-radius:50%
  • 渐变:background: linear-gradient(red,green,blue)
  • 阴影:box-shadow: 3px 3px 3px rgba(255,0,0,0.5)
  • 文字装饰:text-stroke-color: red
  • 文字溢出:text-overflow: ellipsis
  • 背景效果:background-size: 100px 100px
  • 边框效果:border-image: url(bo_blt.png)0 10
  • 转换
    • 旋转:transform: rotate(20deg)
    • 倾斜:transform: skew(150deg,-10deg)
    • 位移:transform: translate(20px,20px)
    • 缩放:transform: scale(0.5)
  • 平滑过渡:transition: all .3s ease-in .1s
  • 动画:@keyframes anim-1 {50% {border-radius: 50%}} animation:anim-1 1s

css3新增伪类有哪些?

  • span:first-of-type:选择属于其父元素的首个<span>元素下的每个<span>元素;
  • span:last-of-type:选择属于其父元素的最后一个<span>元素下的每个<span>元素;
  • span:only-of-type:选择属于其父元素的唯一一个<span>元素下的每个<span>元素;
  • span:nth-child(2n):选择属于其父元素下是2的倍数的<span>元素下的每个<span>元素;
  • :after:在元素之前添加内容,也可以用来清除浮动
  • :before:在元素之后添加
  • :enabled:已启用的表单元素
  • :disabled:已禁用的表单元素
  • :checked:单选框或复选框被选中

介绍一下标准的css盒子模型,低版本IE的盒子模型有什么不同?

  • IE盒子模型和W3C盒子模型;
  • IE8及其以下版本浏览器,未声明DOCTYPE,内容宽高会包含内填充和边框,称其为怪异盒模型;
  • 盒模型:内容(content)、填充(padding)、外边距(margin)、边框(border);
  • 标准盒模型(W3C):元素高度=width + margin + padding + border
  • 怪异盒模型(IE):元素高度=width + margin
  • 标准盒模型可以通过设置CSSbox-sizing: border-box属性,触发"怪异模式"解析计算宽高

box-sizing常用的属性有哪些?分别有什么用?

  • box-sizing: content-box:默认的标准盒模型元素效果
  • box-sizing: border-box:触发怪异盒模型元素的效果
  • box-sizing: content-box:继承父元素的效果
相关推荐
字节逆旅2 小时前
老板说15分钟内把这个样式改好
css
陌上烟雨寒6 小时前
vue手写一个步骤条steps
javascript·css·vue
克里斯前端7 小时前
vue在打包的时候能不能固定assets里的js和css文件名称
javascript·css·vue.js
恰薯条的屑海鸥7 小时前
零基础学前端-传统前端开发(第三期-CSS介绍与应用)
前端·css·学习·css3·前端开发·前端入门·前端教程
海盐泡泡龟7 小时前
盒模型小全
前端·css·盒模型
柚子8169 小时前
CSS也支持if了
前端·css
Allen Bright9 小时前
【CSS-8】深入理解CSS选择器权重:掌握样式优先级的关键
前端·css
余道各努力,千里自同风9 小时前
CSS“多列布局”
前端·css·html
啪叽10 小时前
用纯CSS实现苹果iOS 26的Liquid Glass液体玻璃效果
前端·css·apple
10年前端老司机11 小时前
scss精华总结
前端·css