面试题---CSS
创始人
2024-05-28 21:53:47
0

面试题---CSS

  • 子绝父相下,子百分比的问题
  • 两栏布局问题
  • 三栏布局问题---圣杯问题(三栏,左右固定,中间自适应)。
  • 内联样式与块级样式的区别
  • 怎么让一个 div 水平垂直居中
  • 分析比较 display: none 、visibility: hidden、opacity: 0优劣和适用场景
  • css中min-width与max-width

子绝父相下,子百分比的问题

1 父元素相对定位,子元素绝对定位(子绝父相)的前提下,子元素宽高若设为百分比,是相对父元素的content + padding的值, 注意不含border

如果子元素不是绝对定位,那宽高设为百分比是相对于父元素的宽高,标准盒模型下是content(IE盒模型是content+padding+border。)

两栏布局问题

2 两栏布局问题:需求是左边固定,右边自适应
下面介绍常用的两种方式:

  1. 利用绝对定位
  2. 利用flex布局
// 利用绝对定位,让左侧div,成为BFC
左列定宽
右列自适应
// css #parent{position: relative; /*子绝父相*/ } #left {position: absolute;top: 0;left: 0;width: 100px;height: 500px; } #right {marin-left:100px;width:calc(100%-100px);height: 500px; }
左列定宽
右列自适应
// css #parent{width: 100%;height: 500px;display: flex; } #left {width: 100px; } #right {flex: 1; /*均分了父元素剩余空间*/ }

三栏布局问题—圣杯问题(三栏,左右固定,中间自适应)。

  1. 利用绝对定位
  2. 利用flex布局
// 利用绝对定位
1.父元素使用相对定位
2.两侧子元素使用绝对定位
3.中间元素不做定位处理,只留出空间就好
Left
Main
Right
// css body,html,.container{height: 100%;padding: 0;margin: 0;overflow: hidden; }.left,.right{position: absolute;height:100%;top: 0; }.left{left: 0;width: 200px; }.right{right: 0;width: 200px; }.main{height:100%;margin: 0 200px; }
Left
Main
Right
// css .container{display: flex; }.left{width:200px; }.main{flex: 1;/*均分了父元素剩余空间*/ }.right{width:200px; }

内联样式与块级样式的区别

常见的块级元素:div、h1-h6、address、p等等。
常见的内联元素:span、strong等等。

在这里插入图片描述

怎么让一个 div 水平垂直居中

// 第一种做法是:直接在父级元素设置flex。通过设置父级的flex,让子级元素水平垂直居中。 .parent {display: flex;justify-content: center;align-items: center; }// 第二种做法:父元素dispaly:flex;子元素margin:auto; .parent {display: flex; } .child{margin:auto; }// 第三种做法:transform + absolute + relative .parent {position: relative; } .child {position: absolute;top: 50%; left: 50%;transform: translate(-50%, -50%); }

分析比较 display: none 、visibility: hidden、opacity: 0优劣和适用场景

display:none: 会让元素完全从渲染树中消失渲染的时候不占据任何空间, 不能点击。
visibility: hidden:不会让元素从渲染树消失渲染元素继续占据空间,只是内容不可见,不能点击
opacity: 0: 不会让元素从渲染树消失渲染元素继续占据空间,只是内容不可见,可以点击

继承方面:

  • display: none和opacity: 0:是非继承属性,子孙节点消失由于元素从渲染树消失造成,通过修改子孙节点属性无法显示。
  • visibility: hidden:是继承属性,子孙节点消失由于继承了hidden,通过设置visibility: visible;可以让子孙节点显式。

性能方面:

  • display:none : 修改元素会造成文档回流,读屏器不会读取display: none元素内容,性能消耗较大
  • visibility:hidden: 修改元素只会造成本元素的重绘,性能消耗较少读屏器读取visibility: hidden元素内容,性能消耗较一般
  • opacity: 0 : 修改元素会造成重绘性能消耗较少

css中min-width与max-width

max-width(最大宽度属性):用来定义宽度显示的最大值
min-width(最小宽度属性):用来定义宽度显示的最小值

//宽为100px
//宽度为400px
.max-width img{...}{ max-width:300px;} .min-width img{...}{ min-width:300px} “min-width”里的img图片最小宽度为300px,而实际图片只有100px ,所以图片被拉伸到300px; “max-width”里的img图片最大宽度为300px,而实际图片宽度是400px ,所以图片被缩小到300px;
如何修改才能让图片宽度为 300px?
方法一:
max-width:300px;覆盖其样式;
方法二:
transform: scale(0.625);按比例缩放图片;

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...