前端面试题整理-CSS

news2024/9/19 9:30:05

两栏布局

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>两栏布局</title>
    <style>
      .contain {
        display: flex;
        height: 200px;
      }
      .left {
        background-color: aqua;
        width: 100px;
      }
      .right {
        background-color: violet;
        flex-grow: 1;
      }
    </style>
  </head>

  <body>
    <div class="contain">
      <div class="left">左侧固定</div>
      <div class="right">右侧自适应</div>
    </div>
  </body>
</html>

在这里插入图片描述

三栏布局

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>三栏布局</title>
    <style>
      .contain {
        display: flex;
        height: 200px;
      }
      .left {
        background-color: aqua;
        width: 100px;
      }
      .right {
        background-color: violet;
        width: 100px;
      }
      .middle {
        background-color: yellow;
        flex-grow: 1;
      }
    </style>
  </head>

  <body>
    <div class="contain">
      <div class="left">左侧固定</div>
      <div class="middle">中间自适应</div>
      <div class="right">右侧固定</div>
    </div>
  </body>
</html>

在这里插入图片描述

1. 两栏布局,三栏布局,居中。flex 和 绝对定位两种方案

flex见上。父元素设置 dispaly:flex; 固定的元素设置宽度,自适应的元素用 flex-grow:1;
定位:子绝父相,子元素设置绝对定位后。如果是两栏布局,那么固定的左侧设置宽度和绝对定位,top和left设为0;自适应的右侧直接设置margin-left等于左侧的width(可避免高度塌陷问题)
如果是三栏布局,那么固定的左侧设置宽度和绝对定位,top、left和bottom设为0;固定的右侧设置宽度和绝对定位,top和right设为0;自适应的中间部分直接设置margin上下为0,左右为width(可避免高度塌陷问题)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
居中:
在这里插入图片描述

2. flex 了解不?讲一下

在这里插入图片描述
(2)flex布局项目常见属性(子元素):
flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。
flex属性是flex-grow, flex-shrinkflex-basis的简写,默认值为0 1 auto。后两个属性可选。
align-self 定义子项目在侧轴上的排列方式

align-self:flex-start / flex-end / center / stretch;

order 定义子项目排列顺序,数量越小越靠前,默认为0

3. inline 元素和 inline-block 以及 block 元素有什么区别?常见的哪些标签是内联元素

inline元素:不可设置宽高,宽高由内容决定 span a
inline-block元素:可设置宽高 input button img
block元素:独占一行,可设置宽高 div h1 p

4. margin 可以为负值吗?如果是百分比,那么是相对于什么的?

margin可以是负值,如果是百分比,相对于父元素宽度而言。

5. 说说盒子模型

content-box(标准W3C盒模型,默认): 块总宽度=width(content宽度)+margin+padding+border
元素的宽度仅仅是内容的宽度。
border-box(怪异盒模型): 块总宽度=width(包含padding+border)+margin
元素的宽度和高度包括了内容、‌内边距和边框,‌但不包括外边距。‌

6. 如何修改元素的盒子模型

box-sizing
box-sizing: content-box(默认)标准盒模型
box-sizing: border-box 怪异盒模型

7. 最常用的是什么样的盒子模型

通常我们使用 IE怪异盒子模型的原因是因为它提供了更多的兼容性和灵活性,‌尤其是在处理元素的尺寸和布局时。‌

8. 说说 position 有几种类型,分别是什么作用

static(静态定位):默认值。元素按照正常DOM流排列。
relative(相对定位):依旧占据原来的位置,依旧遵循原来的排布。相对于元素原本的位置进行定位。
absolute(绝对定位):脱离dom流排布,相对于祖先元素中,不为 static 的元素定位,没有就相对于最初包含块(多为页面)定位。由于脱离 dom流,所以修改不会触发回流
fixed(固定定位):脱离dom流排布,相对于视口定位,和祖先元素无关。
sticky(粘性定位):在脱离和占据位置中切换,用于滚动到视区外,固定在视区内。滚动到指定位置时变为固定定位(导航栏)

9. 绝对定位是相对于什么定位的,如果父元素是 fixed,还是相对于它定位吗?

相对于祖先元素进行定位。会。但不糊相对于statc元素定位。

10. fixed 一定是相对于视口定位吗?如果父元素是 relative 呢?

是。与父元素定位无关。

11. 绝对定位的元素是否会脱离 dom 流呢?有什么好处?

会。修改不会触发回流(元素尺寸大小改变而需要重新渲染整个页面)

12. margin 边距重叠能解释下吗?如何解决。

兄弟元素之间的margin重叠:‌当两个垂直方向上的兄弟元素都设置了margin,‌并且它们相邻时,‌它们的margin可能会重叠。‌重叠的规则是取两个相邻元素中margin较大的值作为实际的margin,‌而另一个元素的margin会被忽略。‌

如何解决?包裹一个父元素,父元素触发 BFCC

13. 说一下 BFC

了解,块级格式化上下文,用来隔离元素的。
常见作用用来清除 float,但是 float 布局早已过时。没有深入了解。
也可以用来清除 margin 折叠,但是实际用处并不大。
PS:BFC如何触发?
(1)overflow不为visible(hidden)
(2)position为absolute或者fixed
(3)display为flex,inline-block(行内块元素)

14. 说说 css 中有哪些选择器

id选择器(#)、类选择器(.)、标签选择器(div、span等)、后代选择器(如div span中间是空格,只所有后代)、子选择器(如div>p,只能是儿子)、相邻兄弟选择器(如h1+p)、伪类选择器、伪元素选择器

伪类:
:visited: 被访问过的连接
:hover:鼠标悬浮
:first-child: 第一个子元素
伪元素:
:first-letter:首字母
:before:元素前
:after:元素后

15. 说说优先级。如何覆盖元素的内联属性

!important > 行内样式(内联)> id选择器 > 类选择器 > 标签选择器
同等类型以数量作为权重,数量越多,权重越重
权重相同看 css 文件中的顺序
在这里插入图片描述

16. 你知道回流和重绘吗?如何减少回流?

回流:由于元素尺寸发生变化,导致元素排列进行调整,需要重新生成布局
重绘:元素样式发生变化,只重新绘制该元素无需重新布局
回流一定触发重绘,反之不是

如何减少回流?
批量修改样式,而不是一次一次的修改;
使用绝对定位和固定定位,使元素脱离 DOM 流;
减少对元素位置大小的获取,由于浏览器需要计算,从而触发回流。

17. 场景题:如何隐藏一个元素?

(1) opacity:0 ,该元素隐藏起来了,但不会改变页面布局,并且,如果该元素已经绑定一些事件,如click事件,那么点击该区域,也能触发点击事件的 (仍旧占用空间,且绑定事件)
(2)visibility:hidden ,该元素隐藏起来了,但不会改变页面布局,但是不会触发该元素已经绑定的事件,隐藏对应元素,在文档布局中仍保留原来的空间(重绘)(仍占用空间,但绑定事件生效)
(3)display:none ,把元素隐藏起来,并且会改变页面布局,可以理解成在页面中把该元素。不显示对应的元素,在文档布局中不再分配空间(回流+重绘)(不占用空间,会改变布局)

18. 场景题:如何用 css 画一个三角形

  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>三角符号</title>
    <style>
      /*记忆口诀:盒子宽高均为零,三面边框皆透明。 */
      div:after {
        position: absolute;
        width: 0;
        height: 0;
        content: " ";
        border-right: 100px solid transparent;
        border-top: 100px solid #000;
        border-left: 100px solid transparent;
        border-bottom: 100px solid transparent;
      }
    </style>
  </head>
  <body>
    <div></div>
  </body>

在这里插入图片描述

19. 场景题:单行文字溢出处理,多行文本溢出处理

(1)单行文字溢出显示省略号
在这里插入图片描述
(2)多行文字溢出显示省略号
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1970810.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java计算机毕设课设—基于网络爬虫技术的网络新闻分析系统(附源码、文章、相关截图、部署视频)

这是什么系统&#xff1f; java计算机毕设课设—基于网络爬虫技术的网络新闻分析系统 基于网络爬虫技术的新闻分析系统&#xff0c;它能够实时抓取凤凰网、网易、新浪、搜狐等网站的新闻数据&#xff0c;提取正文和点击量&#xff0c;每日定时抓取。系统还能对抓取的新闻进行…

给echarts图表线条、数据点和区域设置颜色

let myChart echarts.init(document.getElementById("chartmainCop"));// 获取当前干部的各项评分const allIndicators Object.keys(this.dialogEacherTable[0]).filter(key > key ! "CadreID" && key ! "xm").map(key > ({name…

window电脑上使用python将pdf转换为word文档

1、电脑上安装Python运行环境 一、python官网下载链接 二、下载到电脑后&#xff0c;直接运行安装 三、安装完成后按&#xff1a;winR键进入window命令控制窗口&#xff0c;输入 python --version2、设置python依赖包国内镜像源 pip config set global.index-url https://mirr…

国家发改委区域司韩振海副司长一行莅临麒麟信安调研

7月31日&#xff0c;国家发改委区域司韩振海副司长一行莅临麒麟信安调研。湖南省发改委区域处处长孙健军&#xff0c;长沙市发改委党组成员、市长株潭一体化发展事务中心主任邹犇淼等相关领导陪同调研。麒麟信安总裁刘文清热情接待。 在麒麟信安展厅&#xff0c;韩振海副司长一…

在MANET中的TCP增强

本文内容节选自一篇系统性文献综述&#xff08;Systematic Literature Review, SLR&#xff09;&#xff0c;标题为“TCP Performance Enhancement in IoT and MANET”&#xff0c;由 Sultana Parween 和 Syed Zeeshan Hussain 撰写&#xff0c;发表在《International Journal …

Windows下Rust OpenCV环境配置

首发于Enaium的个人博客 安装Chocolatey 首先我们需要安装Chocolatey&#xff0c;Chocolatey是一个Windows的包管理器。 我们点击右上角的Install进入到Installing Chocolatey&#xff0c;选择Individual 复制命令 Set-ExecutionPolicy Bypass -Scope Process -Force; [Sys…

springboot餐饮管理系统-计算机毕业设计源码73168

摘要 随着科技的不断进步和互联网时代的深入发展&#xff0c;餐饮行业正面临着一场由传统向智能化、信息化转变的革命。传统的餐饮管理方式&#xff0c;如手工点餐、纸质菜单、人工结算等&#xff0c;已经无法满足现代餐饮企业对于效率、准确性和用户体验的高要求。因此&#x…

【Hot100】LeetCode—31. 下一个排列

目录 题目1- 思路2- 实现⭐31. 下一个排列——题解思路 3- ACM 实现 题目 原题连接&#xff1a;31. 下一个排列 1- 思路 技巧题&#xff0c;分为以下几个步骤 ① 寻找拐点&#xff1a; i 1 &#xff1a;出现 nums[i1] > nums[i] &#xff0c;则 i 1 就是拐点 从右向左遍…

技术守护尊严||Chat GPT在抵抗性骚扰的作用分析

就在本周&#xff0c;中国人民大学女博士实名举报导师性骚扰的事情&#xff0c;引发全网关注&#xff01; 性骚扰&#xff0c;无论在线上还是线下&#xff0c;无论在职场还是校园&#xff0c;都是对个人尊严与权益的严重侵犯。 幸运的是&#xff0c;随着人工智能技术的飞速发…

专题九_链表(1)

目录 题型总结 2. 两数相加 解析 题解 24. 两两交换链表中的节点 解析 题解 题型总结 2. 两数相加 2. 两数相加 解析 题解 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr)…

硬件开发笔记(二十九):TPS54331电源设计(二):12V转3.3V和12V转4V原理图设计

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140868749 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…

一款功能强大且免费的跨平台图片批量处理工具

XnConvert是一款功能强大且免费的跨平台图片批量处理工具&#xff0c;广泛应用于个人用户、教育机构和非营利组织。它支持超过500种图片格式&#xff0c;包括常见的JPEG、PNG、TIFF、GIF、WebP、PSD、JPEG2000等&#xff0c;并能够导出为大约70种不同的文件格式。 该软件的主要…

【云原生】kubernetes弃用docker之后,containerd何以承载云原生?

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

Mac OS平台,利用 gifify 制作gif教程

一、前言 在很多时候都会用到视频的方式才能直观的表达想表达的东西&#xff0c; 但是视频的文件太大了&#xff0c;所以gif是一个很不错的选择&#xff0c;在网上找了很多免费的都不好用&#xff0c; 最理想的还是直接快捷键唤起&#xff0c;然后选择录制区域&#xff0c;保存…

[CR]厚云填补_GridDehazeNet

GridDehazeNet: Attention-Based Multi-Scale Network for Image Dehazing Abstract 我们提出了一个端到端的可训练卷积神经网络(CNN)&#xff0c;命名为GridDehazeNet&#xff0c;用于单幅图像去雾。GridDehazeNet由预处理、主干网络和后处理三个模块组成。与手工选择的预处理…

Go语言---linux下安装golang protoc详细教程以及完整安装protoc-gen-go工具

在[分布式网络通讯框架]----Protobuf安装配置–附带每一步截图中&#xff0c;我们详细介绍了Protobuf是什么&#xff0c;为什么要使用Protobuf&#xff0c;以及在linux环境中&#xff0c;如何安装Protobuf。Protobuf 在 .proto 定义需要处理的结构化数据&#xff0c;可以通过 p…

Surya - OCR、布局分析、阅读顺序、语言检测

文章目录 一、关于 Surya功能特性例子训练托管API商业用途 二、安装手动安装 三、用法1、交互应用2、OCR&#xff08;文本识别&#xff09;来自 python编译 3、文本行检测From python 4、布局分析From python 5、阅读顺序From python 四、限制五、故障排除六、基准测试OCRGoogl…

react引入高德地图并初始化卫星地图

react引入高德地图并初始化卫星地图 1.安装依赖 yarn add react-amap amap/amap-jsapi-loader2.初始化地图 import AMapLoader from "amap/amap-jsapi-loader"; import { FC, useEffect, useRef, useState } from "react";const HomeRight () > {con…

高速总线概述(二):高速总线技术要点(比特流高速数据传输,编、解码、CRC校验及扰码结构,链路同步)

前言&#xff1a; 读 嵌入式高速串行总线技术 基于FPGA实现与应用_张峰 记 高速串行总线技术技术点 高速串行总线技术点 &#xff08;1&#xff09;采用串行比特流实现高速数据传输&#xff0c;数据以帧格式进行传输&#xff0c;以帧头&#xff08;SOF&#xff09;、…

串口调试可能遇见的常见问题和排查方法

串口UART作为嵌入式应用和通讯领域中最常用的接口之一&#xff0c;接口协议虽然简单&#xff0c;但在实际应 用中不同设备之间的通讯也会存在各种小问题&#xff0c;下面对使用中各种常见的问题做下总结和梳 理&#xff0c;可作为调试参考。 01串口通信常见问题 串口通信乱码…