挑战css基础面试题

news/2024/11/29 22:49:59/

挑战css基础面试题一,看看你能做出来吗

文章目录

  • 前言
  • 一、盒模型
  • 二、如何实现一个最大的正方形
  • 三、文本一行水平居中,多行居左
  • 四、画一个三角形
  • 五、BFC理解
  • 六、两栏布局,左边固定,右边自适应,左右不重叠
  • 最后


前言

本片文章主要是复习并,挑战css基础面试题,都说前端最难的就是css🐶


一、盒模型

解析:考察css盒模型,所以多半是对设置不同box-sizing属性后,元素实际宽度的变化的问题。
1、红色区域的大小是多少
html部分:
一个div,有class为box

<div class="box"></div>

css部分:
设置宽度,高度,padding,margin,border

.box {width: 200px;height: 200px;padding: 20px;margin: 20px;background: red;border: 20px solid black;/*IE模型 -- 为此模型时红色区域大小为width 160=200-20*2 */box-sizing: border-box;/* 标准模型 -- 为此模型时红色区域大小为width 240=200+20*2 */// box-sizing: content-box;
}

效果图:
content-box:
可以看到它红色的区域是包含padding的,但是元素的实际width扩大了。
而红色的区域宽度如图是,240px在这里插入图片描述
border-box:
可以看到它红色的区域是包含padding的,但是width并没有扩大,反而是保持了200px。而红色的区域的宽度如图是,160px
在这里插入图片描述

二、如何实现一个最大的正方形

解析:首先需要理解的是怎么能在页面上面画一个最大的正方形,就是要让这个正方形,充满整个页面才为最大。由于不能保证所有页面是正方形的,所以当页面为长方形时,有一个方向元素不会充满整个页面。

html部分:
一个div有class为section

<div class="section"></div>

css部分:
让width自适应,高度同宽度一样的内边距来撑开,当然用padding-bottom也可以。

.section {width: 100%;padding-top: 100%;background: #333;
}

三、文本一行水平居中,多行居左

解析:根据题意可知,文本需要自动适配单行显示和多行显示,并且需要实现多行时居左,一行居中显示。
分析:我们知道span标签里的文本,默认的特性就是不管单行还是多行都是居左显示的,所以就要想怎么能让文本在一行的时候还能居中显示。所以既然是文本的话那么就很容易想到使用text-align:center属性。
html部分:

<div><span>我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。我是多行文字。</span>
</div>

css部分:
div设置center为了让文本居中,span设置left是因为span会继承div的center所以需要设置left。设置display: inline-block;是因为span为行内元素,需转变为行内块元素,可以在父元素中指定span元素的宽度。

div {text-align: center;
}div span {display: inline-block;text-align: left;
}

四、画一个三角形

解析:直接通过元素或者设置css属性并不能实现,所以得通过其他的方法来,实现视觉上的效果。
html部分:

<div class="angle"></div>

css部分:
当把边框设置的足够大,占满整个元素,那么会形成不同方向的三角形。最后配合transparent可以实现单个三角形

.angle {width: 100px;height: 100px;border-bottom: 100px solid #333232;border-top: 100px solid rgb(73, 59, 232);border-left: 100px solid rgb(177, 212, 36);border-right: 100px solid rgb(188, 97, 44);box-sizing: border-box;
}

效果:
在这里插入图片描述

五、BFC理解

解析:区块格式化上下文(Block Formatting Context,BFC)
分析:这里先简单补充一下之前写过文章中不太细节的东西。

网格元素display 值为 grid
作用:
1、元素内部包含浮动
2、元素周围浮动
3、外边距重叠
因为元素浮动和重叠和边距失效导致的页面显示异常的问题,可以使用可以创建BFC的属性,来解决整个问题。
BFC是什么—>

六、两栏布局,左边固定,右边自适应,左右不重叠

解析:如题,左侧的宽度需要固定,右侧需要自适应宽度
html部分:

<div class="sencod-grid"><div class="left"></div><div class="right"></div>
</div>

css部分:
方法三就是利用了创建bfc实现

.sencod-grid {width: 100vw;height: 100vh;background-color: antiquewhite;// 方法一// .left {//   width: 500px;//   height: 100vh;//   background-color: aqua;// }// .right {//   width: 50%;//   height: 100vh;//   background-color: rgb(230, 230, 64);//   flex: 1;// }// 方法二// .left {//   float: left;//   width: 200px;//   height: 100vh;//   background-color: aqua;// }// .right {//   margin-left: 200px;//   height: 100vh;//   background-color: rgb(230, 230, 64);// }// 方法三.left {float: left;width: 300px;height: 100%;margin-right: 10px;background: red;}.right {height: 100%;overflow: hidden;/* 创建BFC */background: yellow;}
}

在这里插入图片描述


最后

还有其它好的方法,也可以评论一起讨论。👍👍👍


http://www.ppmy.cn/news/979096.html

相关文章

网络通信原理(第十八课)

网络通信原理(第十八课) 4.1 回顾 1.什么是TCP/IP 目前应用广泛的网络通信协议集 国际互联网上电脑相互通信的规则、约定。 2.主机通信的三要素 IP地址:用来标识一个节点的网络地址(区分网络中电脑身份的地址,如人有名字) 子网掩码:配合IP地址确定网络号 IP路由:网…

安全渗透--正则表达式

什么是正则表达式&#xff1f; 正则表达式是一组由字母和符号组成的特殊文本&#xff0c;它可以用来从文本中找出满足你想要的格式的句子。 一个正则表达式是一种从左到右匹配主体字符串的模式。 “Regular expression”这个词比较拗口&#xff0c;我们常使用缩写的术语“regex…

rbd快照管理、rbd快照克隆原理与实现、rbd镜像开机自动挂载、ceph文件系统、对象存储、配置对象存储客户端、访问Dashboard

day04 day04快照快照克隆开机自动挂载ceph文件系统使用MDS对象存储配置服务器端配置客户端访问Dashborad 快照 快照可以保存某一时间点时的状态数据快照是映像在特定时间点的只读逻辑副本希望回到以前的一个状态&#xff0c;可以恢复快照使用镜像、快照综合示例 # 1. 在rbd存…

【Python学习笔记】记载解决Python报错HTTP Error 403: Forbidden的一波三折过程

【Python学习笔记】记载解决Python报错HTTP Error 403: Forbidden的一波三折过程 当前进度&#xff1a;还没有解决&#xff0c;但是已经尝试了好几种办法&#xff0c;此处做个记录&#xff0c;也许能帮上忙。 本帖是整理回顾帖&#xff0c;不是教程帖&#xff0c;追求一个完美…

微信小程序开发5

一、自定义组件-插槽 1.1、什么是插槽 在自定义组件的wxml结构中&#xff0c;可以提供一个<slot>节点(插槽)&#xff0c;用于承载组件使用者提供的wxml结构 1.2、单个插槽 在小程序中&#xff0c;默认每个自定义组件中允许使用一个<slot>进行占位&#xff0c;这种…

LED像素间距是什么?

像素间距是指LED显示屏上像素&#xff08;LED晶元&#xff09;之间的距离&#xff0c;也称为点间距&#xff0c;它与显示屏的分辨率相关。具体来说&#xff0c;它描述的是从某一像素的中心到相邻像素中心的距离&#xff0c;单位通常为毫米。像素间距的大小反映了两个像素之间的…

Docker如何使用

一、Docker安装 命令:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun 1.1 Docker技术的三大核心概念 镜像:类似一个root系统文件 容器&#xff1a;镜像运行的实体&#xff0c;可以被创建、启动、停止、删除、暂停等 仓库&#xff1a;保存镜像 二、镜…

Rust vs Go:常用语法对比(七)

题图来自 Go vs Rust: Which will be the top pick in programming?[1] 121. UDP listen and read Listen UDP traffic on port p and read 1024 bytes into buffer b. 听端口p上的UDP流量&#xff0c;并将1024字节读入缓冲区b。 import ( "fmt" "net&qu…