前端工程师-CSS专项练习

简介: 前端工程师-CSS专项练习

一、两种盒子模型


  • 分别为:W3C盒子模型、IE盒子模型
  • 不同点:
  • 1、W3C盒子模型,宽度(width)指content部分的宽度。在IE盒子模型中,宽度(width)表示content+padding+border这三个部分的宽度
  • 2、切换盒模型,W3C盒子模型:box-sizing: content-box,IE盒子模型:box-sizing: border-box


二、水平垂直居中有几种方式


方法一:


  • 使用绝对定位(position: absolute),然后(top: 50%;left: 50%;),
  • 再去掉margin的宽度和高度,盒子模型宽高的一半( margin-top: -150px;margin-left: -150px;),即可垂直居中
    -优点:兼容性好, 缺点:你要知道盒子模型的宽高,不然不知道margain的宽高


html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>css水平垂直居中</title>
</head>
<body>
  <div class="test"></div>
</body>
<style>
  .test {
    width: 300px;
    height: 300px;
    background-color: antiquewhite;
    position: absolute;
    top: 50%;
    left: 50%;
    margin-top: -150px;
    margin-left: -150px;
  }
</style>
</html>


方法二:


  • 为了解决宽高问题,CSS3推出了transform: translate(-50%, -50%)代替了margain,偏移的百分比是相对于自身大小,这就不用再推算margain的宽高啦~


html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>css水平垂直居中</title>
</head>
<body>
  <div class="test"></div>
</body>
<style>
  .test {
    width: 300px;
    height: 300px;
    background-color: antiquewhite;
    position: absolute;
    top: 50%;
    left: 50%;
    /* margin-top: -150px;
    margin-left: -150px; */
    transform: translate(-50%, -50%);
  }
</style>
</html>

方法三:


  • 通过绝对定位(position: absolute),然后再把上下左右(top: 0;left: 0;right: 0;bottom: 0;)全部为0,再用(margin: auto)水平垂直居中


html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>css水平垂直居中</title>
</head>
<body>
  <div class="test"></div>
</body>
<style>
  .test {
    width: 300px;
    height: 300px;
    background-color: antiquewhite;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
  }
</style>
</html>


方法四:


  • 通过body弹性布局(display: flex),定义body的元素垂直居中(align-items: center),定义body的元素水平居中(justify-content: center


html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>css水平垂直居中</title>
</head>
<body>
  <div class="test"></div>
</body>
<style>
  html,
  body {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
  }
  body {
    display: flex;
    /*垂直居中*/
    align-items: center;
    /*水平居中*/
    justify-content: center;
  }
  .test {
    background-color: antiquewhite;
    width: 300px;
    height: 300px;
  }
</style>
</html>


方法五:


  • 通过相对定位(position: relative),然后水平居中(margin: 0 auto),再来垂直居中(top: 50%;transform: translateY(-50%)


html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>css水平垂直居中</title>
</head>
<body>
  <div class="test"></div>
</body>
<style>
  html,
  body {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
  }
  .test {
    width: 300px;
    height: 300px;
    background-color: antiquewhite;
    position: relative;
    /*水平居中*/
    margin: 0 auto;
    top: 50%;
    transform: translateY(-50%);
  }
</style>
</html>


三、margin塌陷如何解决

相关文章
|
8月前
|
前端开发 JavaScript 开发者
前端 CSS 优化:提升页面美学与性能
前端CSS优化旨在提升页面美学与性能。通过简化选择器(如避免复杂后代选择器、减少通用选择器使用)、合并样式表、合理组织媒体查询,可减少浏览器计算成本和HTTP请求。利用硬件加速和优化动画帧率,确保动画流畅。定期清理冗余代码并使用缩写属性,进一步精简代码。这些策略不仅加快页面加载和渲染速度,还提升了视觉效果,为用户带来更优质的浏览体验。
|
5月前
|
前端开发
|
5月前
|
前端开发
|
5月前
|
前端开发 JavaScript
|
5月前
|
XML 前端开发 JavaScript
|
5月前
|
前端开发 容器
|
7月前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
176 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
8月前
|
前端开发 开发者 UED
《前端技术基础》第02章 CSS基础【合集】
层叠样式表(Cascading Style Sheets,简称CSS)是一种用于描述网页视觉表现的语言。该语言与HTML协同工作,其中HTML负责构建网页的结构,而CSS则负责定义网页的外观和格式。CSS通过一系列规则来实现样式的应用,这些规则由选择器(Selectors)和声明块(Declaration Blocks)构成。选择器的作用是明确指出哪些HTML元素将受到特定样式规则的影响,而声明块则包含了具体的样式声明,这些声明定义了元素的视觉属性和相应的值。
162 1
|
10月前
|
Web App开发 前端开发 JavaScript
揭秘!前端大牛们如何巧妙利用CSS3,打造炫酷视觉效果!
【10月更文挑战第31天】前端开发面临复杂布局的挑战,本文介绍了几种提升开发效率和代码质量的工具和技术。基础的HTML和CSS可以应对大部分布局需求,而Firefox开发者工具、VS Code、Vue、React等则能应对更复杂的布局,帮助开发者构建高性能、用户友好的网页应用。
237 4
|
11月前
|
前端开发 JavaScript
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
CSS样式穿透技巧:利用scoped与deep实现前端组件样式隔离与穿透
1290 1

热门文章

最新文章