当前位置: 首页 > news >正文

CSS前端面试

文章目录

    • rem、em、vh、px各自代表的含义?
    • 盒模型
    • poison 定位属性
    • flex属性
    • 让元素水平垂直居中
    • 页面适配的方法有哪些

rem、em、vh、px各自代表的含义?

px:绝对单位,页面按精确像素展示
em:相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算,整个页面内1em不是一个固定的值
rem:相对单位,可理解为root em, 相对根节点html的字体大小来计算
vh、vw:主要用于页面视口大小布局,在页面布局上更加方便简单

盒模型

盒模型由内而外分别是:width+height(html元素);padding(内边距);border(边框);margin(外边距)。
盒模型分为:
怪异盒模型(IE盒模型)
使用属性:

box-sizing:border-box;//怪异盒模型
//width + height = html + border + padding

标准盒模型

box-sizing:context-box;//标准盒模型
//width + height = width + height 

弹性盒模型(flex)

display:flex;

poison 定位属性

相对定位 (position:relative;)
相较于原来的位置。相对定位会保留原来的位置,【不脱离文档流】。

绝对定位 (position:absolute;)
不保留原来的位置,【脱离文档流】。绝对定位若父级没有设置相对定位,则默认会以浏览器为基准变化,若父级设置了相对定位,则以父级为基准变化。

固定定位 (position:fixed;)
会一直固定在某个不位置,不随滚动条滚动而改变。【脱离文档流】

粘性定位 (position:sticky;)
会随着滚动条滚动,【脱离文档流】

flex属性

flex属性是 flex-growflex-shrinkflex-basis三个属性的缩写。

flex-grow: 定义元素的的放大比例

默认为0;即使存在剩余空间,也不会被放大
所有元素flex-grow都为1,等分所有空间,自动放大
当某个元素flex-grow为n,占的空间是flex-grow为1的n倍

我们通常将flex:1用作自适应布局,即flex:1 == flex-grow:1

flex-shrink: 定义元素的缩小比例

默认为1,即 如果空间不足,该元素将缩小;
所有元素的flex-shrink都为1:当空间不足时,缩小的比例相同;
flex-shrink为0:空间不足时,该元素不会缩小;
当某个元素flex-grow为n,空间不足时缩小的比例是flex-shrink为1的n倍。

flex-basis: 定义在分配多余空间之前,元素占的主轴空间(main size),浏览器根据此属性计算主轴是否有多余空间。相当于设置初始值。

默认值为auto,即元素原本大小;
设置后元素将占据固定空间。(如flex-basis:100px;)

让元素水平垂直居中

1、定位 + margin
给父级设置相对定位。给子级设置绝对定位,并且给子级的top bottom left right 都设置为0,margin设置为auto。

2、定位 + margin负值
给父级设置相对定位。给子级设置绝对定位,并且给子级的top bottom 设置为50%,margin-left设置为子元素width的一半,margin-top设置为子元素height的一半。

以上两种方法都需要固定宽高,以下是几种不需要固定宽高的方法


3、定位 + transform
给父级设置相对定位。给子级设置绝对定位,并且给子级的top bottom 设置为50%,transform设置为translate(-50%,-50%)。

4、table布局
给父级设置display:table-cell;vertical-align:midlle;text-align:center;给子级设置display:inline-block;这样可以使所有为行内块元素的子级都可以水平垂直居中

5、flex布局
给父级设置display:flex;align-items:center;justify-content:center;

6、grid布局
给父级设置display:grid;align-items:center;justify-content:center;

页面适配的方法有哪些

1、根据不同根据不同的分辨率,加载不同的CSS样式文件

// 分辨率大于等于1680,大部分为1920的范围情况下,调用此css
if(window.screen.width >= 1680){document.write('<link rel="stylesheet" href="css/index_1920.css">');
}

2、媒体查询

/* 大屏幕 */
@media (min-width:1200px) {.container:{width:1000px;}
}
http://www.lryc.cn/news/110324.html

相关文章:

  • VB+SQL餐饮管理系统设计与实现
  • React入门学习笔记2
  • Palo Alto Networks® PA-220R 下一代防火墙 确保恶劣工况下的网络安全
  • 架构训练营学习笔记:5-2 负载均衡架构
  • 二叉树的性质、前中后序遍历【详细】
  • 涨姿势了,有意思的气泡 Loading 效果
  • 单片机中断系统
  • 二、JVM-深入运行时数据区
  • 随机验证码vue实现,登录验证码随机验证码数字和字母类型的
  • xlrd与xlwt操作Excel文件详解
  • A Survey of Embodied AI: From Simulators to Research Tasks 论文阅读
  • spark-sql数据重复之File Output Committer问题
  • 面试热题(前中序遍历构建树)
  • 美术:贴图
  • [MAUI]模仿微信“按住-说话”的交互实现
  • windows开机运行jar
  • 使用DockerFile一键创建自定义linux开发环境
  • “深入探索JVM:解密Java虚拟机的工作原理“
  • 【华为OD机试】数字最低位排序【2023 B卷|100分】
  • 【Odoo16前端源码分析】xml模板的加载
  • Open3D (C++) 计算矩阵的广义逆
  • 11.物联网操作系统内存管理
  • 举办活动发布会,如何得到媒体支持?
  • 1139 First Contact(unique函数,string.substr()函数)
  • Python元编程-装饰器介绍、使用
  • python进程池的使用
  • Dockerfile构建lamp镜像
  • LeetCode724. 寻找数组的中心下标
  • 【云计算 | Docker】Docker容器后台运行不了?entrypoint在作妖?
  • DAY02_Spring第三方资源配置管理Spring容器Spring注解开发Spring整合Mybatis和Junit