css面试常见基础样式持续更新5-7

157 阅读1分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路。

1. 三角形

效果图:

image.png

(1)思路1

  <style>
    div{
      width: 0px;
      height: 0px;
      border-top: 100px solid transparent;
      border-bottom: 100px solid transparent;
      border-left: 0px solid transparent;     
      border-right: 100px solid red;
    }
  </style>
</head>
<body>
  <div></div>
</body>

(2)思路2

  <style>
    div{
      width: 0px;
      height: 0px;
      border: 100px solid transparent;
      border-left-color:  red; 
    }
  </style>
</head>
<body>
  <div></div>
</body>

2. 块级盒子水平垂直居中

效果图:

image.png

思路1:margin

position 元素已知宽度 绝对定位+margin反向偏移margin: -50px 0 0 -50px;

思路2:translate

将盒子的margin: -50px 0 0 -50px;替换为:transform: translate(-50%,-50%);

思路3:flex布局

display:flex
justify-content:center//子项目主轴居中
aligin-items:center//子项目子轴居中

思路4:子绝父相

父:position:relative

子:上下左右相同即可

position:absolute
top:0
bottom:0
left:0
right:0
margin:auto

思路5:利用 display:table-cell

<style> 
 .parent { 
 width: 500px; 
 height: 500px; 
 border: 1px solid #000; 
 display: table-cell; 
 vertical-align: middle; 
 text-align: center; 
 } 
 
 .child { 
 width: 100px; 
 height: 100px; 
 border: 1px solid #999; 
 display: inline-block; 
 } 
 </style> 
</head> 
<body> 
 <div class="parent"> 
 <div class="child">我是子元素</div> 
 </div> 
</body> 

水平居中

跟上面差不多就直接上图了

image.png

image.png

image.png

image.png

3. 文本超出

1

image.png

2

image.png

4. 圣杯布局

思路1:flex布局

父盒子设置display:flex,左右子盒子设置死宽度,中间的子盒子设置flex:1

思路2:定位

父盒子相对定位padding为子盒子宽,左右子盒子绝对定位,中间盒子宽高100%

定位方法有很多种,这里只举了其中一种

思路3:BFC块级格式化上下文

左右盒子固定宽高,进行浮动,中间盒子 overflow: hidden;

思路4:float

中间盒子装满父盒子,左右盒子分别左浮动右浮动

思路5:margin

左中右三个盒子使用margin进行布局操作

  1. 5
  2. 6
  3. 7
  4. 8