震惊!!!一眼就能看懂的CSS页面布局方式!!!!

news/2024/7/19 14:09:41 标签: html, css, js, css3

代码复制都可以直接使用!有帮助记得点赞互粉加收藏!

1.理解盒子模型
border-sizing(怪异盒子):内容宽高+margin外边距左右
content-box(标准盒子):内容宽高+margin外边距左右+padding内边距左右+border边框
一个盒子由外到内可以分成四个部分:margin(外边距)、border(边框)、padding(内边距)、content(内容)。会发现margin、border、padding是CSS属性,
因此可以通过这三个属性来控制盒子的这三个部分。而content则是HTML元素的内容
box-shadow: 10px 10px 5px #888888;
box-shadow: h-shadow v-shadow blur spread color inset;
h-shadow 必需。水平阴影的位置。允许负值。
v-shadow 必需。垂直阴影的位置。允许负值。
blur 可选。模糊距离。
spread 可选。阴影的尺寸。
color 可选。阴影的颜色。请参阅 CSS 颜色值。
inset 可选。将外部阴影 (outset) 改为内部阴影。
在这里插入图片描述
在这里插入图片描述

理解并会使用flex, float等常见布局思路 
(1)普通布局(头部、内容、底部)
<div class="container">
    <header></header>
    <div class="content"></div>
    <footer></footer>
</div> 

(2)两栏布局,通过float左边固定大小,右边自适应
<div class="container1">
    <div class="nav"></div>
    <div class="content"></div>
</div>
<!-- css实现方法2:通过display:inline-block实现
.container1 {
    /* width:80%;和margin 是为了方便我截图*/
    width: 80%;
    margin: 50px auto;
    border:2px solid red;
    box-sizing: border-box;
    font-size: 0;
}
container1 .nav {
    display: inline-block;
    width: 200px;
    background: #faa;
    height: 200px;
}
container1 .content {
    width: calc(100% - 200px);
    display: inline-block;
    height: 200px;
    background-color: #aaf;
} -->
<!-- css实现方法3:通过flex实现,左侧固定大小,右侧设置flex:1实现自适应
.container1 {
    width: 80%;
    margin: 50px auto;
    border:2px solid red;
    box-sizing: border-box;
    display: flex;
}
.container1 .nav {
    width: 200px;
    background: #faa;
    height: 200px;
}
.container1 .content {
    flex: 1;
    height: 200px;
    background-color: #aaf;
} -->
<!-- flex: 1等同于flex-grow: 1; -->

(3)三栏布局:通过flex布局
<div class="container2">
    <div class="left"></div>
    <div class="right"></div>
    <div class="content"></div>
</div>
<!-- css布局方法2:通过float浮动,左右大小固定,中间自适应
.container2 {
    width: 100%;
    margin-bottom: 30px;
    border:2px solid red;
    box-sizing: border-box;
}
.container2 .left {
    width: 100px;
    height: 200px;
    background: #faa;
    float: left;
}
.container2 .right {
    width: 300px;
    height: 200px;
    background: #afa;
    float: right;
}
.container2 .content {
    height: 200px;
    background-color: #aaf;
    margin:0 200px;
} -->

(4)圣杯布局
<div class="container3">
    <div class="middle"></div>
    <div class="left"></div>
    <div class="right"></div>
</div>

(5)双飞翼布局
<div class="container4">
    <div class="middle"></div>
</div>
<div class="left4"></div>
<div class="right4"></div>


CSS样式
.container {
    width: 80%;
    margin: 30px auto;
    border:2px solid red;
    box-sizing: border-box;
}
.container header {
    width: 100%;
    height: 30px;
    background: #faa;
}
.container .content {
    width: 100%;
    height: 100px;
    background: #aaf;
}
.container footer {
    height: 50px;
    background: #afa;
}

.container1 {
    width: 80%;
    margin: 30px auto;
    border: 2px solid #aaa;
    box-sizing: border-box;
    /* 采用bfc清除浮动 */
    overflow: hidden;
    height: 200px;
}
.container1>.nav {
    float: left;
    width: 200px;
    background: #faa;
    height: 200px;
}
.container1>.content {
    margin-left: 200px;
    background: #aaf;
    height: 200px;
}

.container2 {
    width: 80%;
    margin: 30px auto;
    border: 2px solid red;
    box-sizing: border-box;
    height: 200px;
    display: flex;
    justify-content: space-between;
}
.container2>.left {
    flex: 1;
    background-color: #FFAAAA;
}
.container2>.right {
    flex: 3;
    background-color: #AAAAFF;
}
.container2>.content {
    flex: 2;
    background-color: #AAFFAA;
}

.container3 {
    position: relative;;
    height: 200px;
    background: #ddd;
    padding: 0 300px 0;
    margin: 30px auto;
}
.container3 .middle{
    float: left;
    width: 100%;
    height: 200px;
    background-color: #AAFFAA;
}
.container3 .left{
    float: left;
    position: relative;
    height: 200px;
    width: 300px;
    margin-left: -100%;
    left: -300px;
    background-color: #FFAAAA;
}
.container3 .right {
    float: left;
    position: relative;
    width: 300px;
    height: 200px;
    margin-left: -300px;
    left: 300px;
    background-color: #AAAAFF;
}

.container4{
    float: left;
    width: 100%;
    height: 200px;
    background: #ddd;
}
.container4 .middle{
    height: 200px;
    margin: 0 300px;
    background-color: #AAFFAA;
}
.left4{
    float: left;
    position: relative;
    width: 300px;
    height: 200px;
    margin-left: -100%;
    background-color: #FFAAAA;
}
.right4{
    float: left;
    position: relative;
    width: 300px;
    height: 200px;
    margin-left: -300px;
    background-color: #AAAAFF;
}

3.使用scss等样式预处理语言
scss概念:sass是成熟,稳定,强大的CSS预处理器,而SCSS是Sass3版本当中引入的新语法特性,完全兼容CSS3的同时继承Sass强大的动态功能
scss特性:CSS书写代码规模较大的Web应用时,容易造成选择器、层叠的复杂的过高,因此推荐通过SASS预处理器进行CSS的开发,
SASS提供的变量,嵌套,混合,继承等特性,让CSS的书写更加有趣与程式化
(1)scss的安装
插件:npm install node-sass --save-dev
npm install sass-loader --save-dev
npm install style-loader --save-dev
在webpack.base.conf.js中加上
{test:/.scss$/, loaders:[‘style’,‘css’,‘sass’]}

(2)创建公共scss,写一些需要全局设置的基本样式,例如清除浮动
(3)安装sass-resources-loader来全局引入
npm i sass-resources-loader --save-dev插件是我们想要全局引用scss所要安装的
修改build中的utils.js,我们将scss:generateLoaders('scss')改为scss:generateLoaders('sass').concat({loader: 'sass-resources-loader',
    options: {
        //你自己的scss全局文件的路径
    resources: path.resolve(__dirname, '../src/common/style/index.scss')
    })
(4)直接的引入,在main.js中直接引入scss,然后再需要的组件中需要引入时再使用
操作网址:https://blog.csdn.net/haochangdi123/article/details/80798813 -->

4.css样式污染解决方案
20.更改element ui 的三种方式
(1)给组件加上id或者class,然后添加一个style,不要加scoped(vue可以有多个style),在组件里直接修改
(2)外部引入css文件,默认样式会被覆盖
(3)利用深度::v-deep深度修改组建的样式,可以直接写在到scoped作用域的style里面。
例子:::v-deep .video-play { width:100px} -->


http://www.niftyadmin.cn/n/884548.html

相关文章

矩阵分解(0)-- 矩阵相关概念及性质总结

1.逆矩阵 注意&#xff1a; 非奇异矩阵与以下命题等价&#xff1a; 1.1 求法1&#xff1a;伴随矩阵 补充&#xff1a;代数余子式求法实例&#xff1a; 矩阵行列式&#xff1a; 行列式计算&#xff1a; 1.2 求法2&#xff1a;初等变换 矩阵初等变换操作&#xff1a; 1.3 逆矩阵性…

遇到github,gitlab无权限访问仓库,需要配置ssh密钥

当我们换新电脑时&#xff0c;去拉github,gitlab的项目时&#xff0c;都会出现没有权限访问该仓库的问题&#xff0c;这个时候我们就需要去配置我们的ssh密钥 问题如下所示&#xff1a; gitgithub.com: Permission denied (publickey). fatal: 无法读取远程仓库。请确认您有正…

矩阵分解(1)-- 矩阵分解之LU、LDLT、Cholesky分解

1. 分类 矩阵分解&#xff08;decomposition, factorization&#xff09;是多半将矩阵拆解为数个三角形矩阵&#xff08;triangular matrix&#xff09;&#xff0c;依使用目的的不同&#xff0c;可分为几类。 与线性方程解法相关的矩阵分解 LU分解奇异值分解QR分解极分解特…

vue中$set用法及其源码的底层原理

vue中$set用法及其源码的底层原理 在我们开发过程中&#xff0c;经常会遇到&#xff0c;为一个数组或者对象data中添加一个属性&#xff0c;点击按钮后发现&#xff0c;控制台打印明明对象中已经出现了这个属性&#xff0c;视图层却并没有更新该数据&#xff0c;这是因为受到J…

矩阵分解(2)--- 奇异值分解(SVD),AX=b问题

1. 特征值与特征向量 2. SVD奇异值分解 2.1 SVD定义 wiki&#xff1a; https://zh.wikipedia.org/wiki/%E5%A5%87%E5%BC%82%E5%80%BC%E5%88%86%E8%A7%A3 2.2 SVD理解 Ref&#xff1a;奇异值分解&#xff08;SVD&#xff09; - 知乎 应用&#xff1a; 对于齐次线性方程 A*X…

震惊!!!一眼就能看懂的setAttribute用法!!!!

setAttribute(String(添加属性名称)&#xff0c;String(添加属性值)) 方法添加指定的属性&#xff0c;并为其赋指定的值&#xff0c;如果指定属性存在&#xff0c;则仅设置/更改值 例子1&#xff1a;var a document.querySelector("button") a.setAttribute("…

震惊!!!一眼就能看懂的getBoundingClientRect用法!!!

主要介绍getBoundingClientRect的基本属性&#xff0c;以及具体的使用场景和一些需要注意的问题。 getBoundingClientRect Element.getBoundingClientRect() 含义&#xff1a; 方法返回元素的大小及其相对于视口的位置。 值&#xff1a; 返回值是一个 DOMRect 对象&#xff0…

vue中scss从安装到最后完成一键换肤效果全过程

本来打算用less来实现这个功能&#xff0c;更为轻量简便&#xff0c;但是平时scss使用更多&#xff0c;首先是安装scss 一、安装对应依赖node模块&#xff1a;npm install node-sass --save-devnpm install sass-loader --save-dev二、 在vue.config.js中进行配置module.export…