前端面试:CSS常问

目录

一、容器无宽高,如何实现水平垂直居中

二、CSS 中的单位

三、CSS 权重和优先级

四、flex 实现两边固定,中间自适应

五、谷歌浏览器,8px字体显示

六、CSS 实现 0.5px 边框

七、CSS 绘制三角形

八、BFC 的理解及作用


一、容器无宽高,如何实现水平垂直居中

<div class="wrap">
	<div class="box">
		水平垂直居中
	</div>
</div>

方式一:flex/grid 布局

.box{
	display: flex;  /* display: grid; */
	align-items: center;
	justify-content: center;
}

方式二:flex/grid + margin

.wrap{
	display: flex; /* display: grid; */
}
.box{
	margin: 0 auto;
}

方式三:父容器 table-cell

.wrap{
	background: yellow;
	width: 500px;
	height: 500px;
	display: table-cell;
	vertical-align: middle ;
	text-align: center;
}

方式四:定位 + translate

.wrap{
	background: yellow;
	width: 500px;
	height: 500px;
	position: relative;
}
.box{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
}

二、CSS 中的单位

  • px:像素,网页常用,基本单位
  • rpx:微信小程序适配常用
  • %:相对于父级元素的百分比单位
  • em:默认字体大小的倍数,根据父级元素字体大小确定
  • rem:相对于根元素的字体大小,移动端适配常用
  • vw:浏览器视口宽度1%,如浏览器宽度1200,1vw=12px
  • vh:浏览器视口高度1%,用法同vw

三、CSS 权重和优先级

!important > style > #id > .class > 元素选择器(div,::after) > @import

四、flex 实现两边固定,中间自适应

<div class="box">
	<div class="left">left</div>
	<div class="center">center</div>
	<div class="right">right</div>
</div>

.box{
	display: flex;
}
.left,.right{
	width: 200px;
}
.center{
	flex: 1;
}

五、谷歌浏览器,8px字体显示

/* 只缩小文字,不缩小容器 */
-webkit-transform:scale(0.8); 

/* CSS 属性 */
-webkit-text-size-adjust:none;
font-size: 8px

/* 浏览器设置 */

六、CSS 实现 0.5px 边框

定位 + 伪元素 + transfrom缩放(scale)
容器伪元素宽高是 200% ,边框为 1px ,然后缩小元素为50%,视觉上实现 0.5px 

.border{
	width: 100px;
	height: 100px;
	position: relative;
}
.border::after{
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	width: 200%;
	height: 200%;
	border: 1px solid #000;
	transform-origin: 0 0;
	transform: scale(0.5);
}

七、CSS 绘制三角形

  • 向下三角形,上边框有颜色,其他无颜色
  • 向上三角形,下边框有颜色,其他无颜色
  • 向左三角形,右边框有颜色,其他无颜色
  • 向右三角形,左边框有颜色,其他无颜色
/* 宽高为0 */
width: 0;
height: 0;
/* 向下三角形 上边框设置颜色 */
border-top: 20px solid red;
border-bottom: 10px solid transparent;
border-left: 20px solid transparent;
border-right: 20px solid transparent;

八、BFC 的理解及作用

创建一个BFC几种方式:

  • 浮动元素(元素的float不是 none,为left或者right)
  • 绝对定位元素(元素的 position 为 absolute 或 fixed)
  • display 的值不为 inline-block 、flex、inline-flex
  • overflow 的值不为 visible

BFC特点:

  • 内部容器垂直排列
  • 属于同一个 BFC 的两个相邻容器的 margin 会发生重叠
  • BFC的区域不会与浮动的元素区域重叠
  • BFC 在页面上是一个独立的容器,外面的元素和子元素互不影响
  • 计算BFC的高度时,浮动元素也参与计算

BFC作用:

  • 取消盒子的 margin 塌陷
  • 清除内部浮动,不会影响外面元素,可以阻止元素被浮动元素覆盖

BFC

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值