web学习笔记2

news2024/9/27 15:34:25

文档流
网页是一个多层的结构,设置样式也是一层一层的设置,最终我们看到的最上面的一层。

   文档流是网页最底层

          我们创建的元素默认情况下,都在文档流中

          元素分为两种状态:在文档流中,脱离文档流

    元素在文档流中的特点

        块元素

           1:会独占一行

           2:块元素的宽度默认是父元素的100%

           3:块元素的高度默认是被内容撑开的

        内联元素(行内元素)

           1:不会独占一行

           2:宽度高度默认都是被内容撑开的,不能自己定义宽高

        行内块元素

           1、不会独占一行,可以设置宽高

一旦元素通过某种方式,例如浮动、绝对定位等等,脱离文档流,则原来在文档流中划分元素类型,特点都不复存在
 

盒子模型:一个盒子由四个部分组成:content、padding、border、margin

content,即实际内容,显示文本和图像

boreder,即边框,围绕元素内容的内边距的一条或多条线,由粗细、样式、颜色三部分组成

padding,即内边距,清除内容周围的区域,内边距是透明的,取值不能为负,受盒子的background属性影响

margin,即外边距,在元素外创建额外的空白,空白通常指不能放其他元素的区域

<style>
  .box {
    width: 200px;
    height: 100px;
    padding: 20px;
  }
</style>
<div class="box">盒子模型</div>

默认情况下,盒子模型为W3C 标准盒子模型

内边距:

元素内容距离盒子边框的距离就是内边距,他并不是上下左右的大小相等。css盒模型在元素基础上多了border和margin属性,目的是便于布局,让网页好看。

<style>
      div{
        width: 600px;
        height: 600px;
        background-color: pink;
       /* padding-top: 20px;
        padding-left: 20px;
        padding-right: 20px;
        padding-bottom: 20px;*/
        padding: 30px;
        padding: 30px 50px;
        padding: 10px 60px 90px;
                /*上;左右,下*/
        padding: 10px 30px 60px 90px;
        /*       上    右   下   左   */
      }
    </style>

外边距:

盒子模型由四个部分组成,即内容(content),内边距(padding),边框(border),外边距(margin)。其中margin属性是用与设置外边距,即盒子与盒子之间的距离。

<style>
    ul li{
      list-style: none;
      background-color: pink;
      margin-bottom: 30px;
    }
    span{
      display: inline-block;
      width: 50px;
      background-color: aqua;
      margin-right: 5px;
      
    }
  </style>

外边距塌陷问题:

对于两个嵌套关系(父子关系)的块元素,父元素有上边距子元素也有上边距,此时父元素会塌陷较大的外边距值。

<style>
    .father{
      width: 800px;
      height: 800px;
      background-color:powderblue;
      /*border: 1px solid red;*/
      padding: 5px;
    }
    
    .son{
      width: 100px;
      height: 100px;;
      background-color:pink;
     /* margin-bottom: 20px;*/
     overflow:hidden;
    }
    .son2{
      margin-top: 10px;
    }
    .son3{
      margin-top: 10px;
    }
    .son1{
      margin-top:300px;
    }
    /* margin塌陷问题 
    父元素的第一个子元素的margin-top值会被父元素抢走
    给父元素添加边框
    overflow:hidden;----偏方
    */
    
    /*padding:10px 20px 40px 80px 顺时针*/
  </style>

   解决办法:

  1. 给父元素定义边框
  2. 给父元素一个内边距
  3. 为父元素添加over-flow: hidden

文本溢出:

在日常开发展示页面,如果一段文本的数量过长,受制于元素宽度的因素,有可能不能完全显示,为了提高用户的使用体验,这个时候就需要我们把溢出的文本显示为省略号

<style>
    div{
      width: 800px;
      height: 800px;
      background-color: pink;
      /*overflow:auto;*/
      /*overflow: hidden;*/
      overflow: visible;
    }
  </style>

单行文本溢出省略

实现方式涉及的css属性有:

  • text-overflow:规定当文本溢出时,显示省略符号来代表被修剪的文本
  • white-space:设置文字在一行显示,不能换行
  • overflow:文字长度超出限定宽度,则隐藏超出的内容

样式继承

样式继承的定义:为一个元素设置样式,同时也会运用到它的后代元素上

样式继承的优势:方便开发,通用样式写在共同的祖先元素上

注意:并不是所有样式都会被继承,比如:背景相关的,布局相关等不会被继承

<style>
    a{
      text-decoration: none;
    }
    /*div,
    div span,
    aiv a {
      font-size:40px;
    }*/
    
    div {
      font-size: 50px;
      color: #807474;
      /*padding: 13px;*/
    }
    /*css样式的继承性
    不是所有的样式都继承,只有改变之后对布局无影响的样式,才会继承
    a链接最好在自身更改样式
    */
  </style>

flex布局:

Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。行内元素也可以使用Flex布局。

注意,为某个元素设置Flex布局以后,子元素的float、clear 和 vertical-align 属性将失效。

<style>
    .father{
      width: 800px;
      height: 100px;
      background-color: pink;
      display: flex;
      /*排列方式*/
      flex-direction: row-reverse;
      flex-direction: column;
      flex-direction: column-reverse;
      flex-direction: row;
      /*让flex布局变为多行*/
      flex-wrap: wrap;
      flex-wrap: nowrap;
      /*flex-wrap: wrap; */
      /*水平轴上的布局*/

      /*主轴上的布局*/
      justify-content: center;
      justify-content: end;
      justify-content: space-between;
      justify-content: space-around;
      justify-content: space-evenly;
      /*侧轴*/
      align-items: center;
      /*align-items: end;*/
      align-items: start;

      align-content: start;
      align-content: end;
      align-content: center;
      align-content: space-between;
      align-content: space-around;
      align-content: space-evenly;
    }
    .son {
      width: 170px;
      height: 200px;
      background-color: aqua;
    }
    
  </style>

定位补充:

定位是布局中的重要属性,一般用于盖压效果与位置相关效果。

css中的position属性,position有四个值:relative(相对定位)、absolute(绝对定位)、static(静态定位)和fixed(固定定位),通过top、left、bottom、right来调整元素位置

<style>
    .father{
      position: relative;
      width: 500px;
      height: 500px;
      background-color: pink;
    }
    .son{
      width: 100px;
      height: 100px;
      background-color: aqua;
    }
    .son1{
      position: absolute;
      /*z-index 定位中显示的优先级*/
      z-index: 1;
      top: 100px;
      left: 50px;
      background-color: aquamarine;
    }
    .son2{
      position: absolute;
      z-index: 3;
      top: 110px;
      left: 80px;
      background-color: blueviolet;
    }
  </style>
属性值作用备注
relative相对定位参考元素本身
absolute绝对定位参考最近的祖先元素
static静态定位基本定位规定
fixed固定定位参考浏览器窗口



浮动:

 有很多的布局效果,标准流没有办法完成,此时就可以利用浮动完成布局。 因为浮动可以改变元素标签默认的排列方式

浮动最典型的应用:可以让多个块级元素一行内排列显示。

网页布局第一准则:多个块级元素纵向排列找标准流,多个块级元素横向排列找浮动

<style>
    .father{
      width: 1000px;
      /*height: 1000px;*/
      background-color: pink;
    }
    .son{
      float: left;
      width: 200px;
      height: 200px;
      background-color: aqua;
    }
    .son2{
      background-color: blue;
      float: left;
      /*浮动,会脱离文档流 不再保留原来位置  会造成在其下方的兄弟元素位置发生变化*/
      /*当子元素发生浮动时,其父元素会发生高度塌陷     */    
    }
    .son3{
      width: 400px;
      background-color: black;
    }
  </style>

float问题解决办法:

1、overflow方法,给父级元素一个overflow:hidden,设置高度值为auto,在没有明确高度限制的情况下,那么父级元素在隐藏超出他的元素是就会把浮动元素考虑在内,这样就防止了盒子模型的塌陷,同时,既然盒子不塌陷了,那么后续的元素就不能过来占用float原本的位置,顺便达成了清除浮动的目的
2
、clearfix,使用clearfix后告诉后面的元素,前面的元素是浮动的,他们的位置是不能占用的。当然这种方法在使用过程中要注意clearfix添加的位置。clearfix是加在浮动元素的父级的class中

3、clear:both方法,其实就是第二种方法中使用空标签的时候换一个class,而这个class中只需要一句话clear:both即可

​
<style>
    ul{
      height: 300px;
      /*overflow: hidden;*/
    }
    ul li{
      float: left;
      list-style: none;
      margin-right: 20px;
      
    }
    /*div{
      clear: both;
    }*/
    p{
      /*clear 清除浮动*/
      clear: both;
    }
  </style>

​

2D转换:

1.特点

2D转换是通过css来改变元素的形状或位置,也可以叫做变形

2.优点

变形不会影响到页面的布局

1.translate  平移
可选值:a  translateX()沿着x轴方向平移

意思是说设置元素沿着水平方向平移

b  translateY()沿着Y轴方向平移

意思是说设置元素沿着垂直方向平移

c  translateZ()沿着Z轴方向平移

意思是说设置元素沿着自己的方向平移

rotate()  旋转

可选值:  rotateX() ,元素围绕其 X 轴以设定的度数进行旋转

 rotateY() ,元素围绕其 Y轴以设定的度数进行旋转

 rotateZ() ,元素围绕其 Z轴以设定的度数进行旋转

单位:数值deg

transform-origin  设置变形原点

可选值:a  默认值transform-origin:(center  center)

 值也可以为方向值(left、center、top、right、bottom等),也可以是以px、%为单位的数值

scale  缩放

缩放属性是让元素根据中心原点对对象进行缩放

<style>
    .father{
      width: 300px;
      height: 300px;
      border: 1px solid black;
      margin: 0 auto;
    }
    .son{
      width: 300px;
      height: 300px;
      background-color: pink;
      /*平移*/
      /*transform: translate(-40px,40px);*/
      /*transform: translateX(70px);*/
      /*transform: translateY(-60px);*/
      /*旋转*/
      /*transform:rotateZ(40deg);*/
      /*复合写法 旋转永远放在最后一个*/
      /*transform: translate(100px) rotateZ(45deg);*/

      /*transform: scale(1.5);*/
      /*transform: scaleX(2);*/
      /*transform: scaleY(2);*/
      /*transform: skew(40deg);*/
      /*向右下移动100px  旋转45度 缩放1.5*/
      transform: translate(100px,100px) scale(1.5) rotate(45deg);
    }
  </style>

3D:

旋转的三个方向,沿着三个轴旋转实现3D的变换,也可以设置透视效果。
沿着x轴的旋转类似于平面的移动,y轴的旋转类似于芭蕾舞移动,z轴方向类似于翻跟头的动作

需要存在父容器来进行旋转,舞台来形成透视关系。
属性设置:
父容器:transform-style:preserve-3d;transform:rotate Y(60deg);
舞台:perspective:100px

<style>
    .father{
      width: 300px;
      height: 300px;
      border: 1px solid black;
      margin: 100px auto;
      transform-style: preserve-3d;
      perspective: 800px;
      /*perspective-origin: 100px 200px;*/
    }
    .son{

      width: 300px;
      height: 300px;
      background-color: pink;
      /*transform: translateZ(200px);*/
      transform: rotateX(45deg);
      /*transform: rotateY(45deg);*/
      /*transform: rotate3d(1, 1 ,0 ,45deg);*/
      backface-visibility: hidden;
      transform-origin: bottom;
    }
  </style>

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

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

相关文章

同一段数据分别做傅里叶变化和逆变换的结果及分析

已知有公式 D F T &#xff1a; X [ k ] ∑ n 0 N − 1 x [ n ] e − j 2 π k n N &#xff0c; 0 ≤ k ≤ N − 1 DFT&#xff1a;Χ[k]\sum_{n0}^{N-1}x[n]e^{-\frac{j2\pi kn}{N}}&#xff0c;0≤k≤N-1 DFT&#xff1a;X[k]n0∑N−1​x[n]e−Nj2πkn​&#xff0c;0≤k…

超详细 | 模拟退火-粒子群自适应优化算法及其实现(Matlab)

作者在前面的文章中介绍了经典的优化算法——粒子群算法(PSO)&#xff0c;各种智能优化算法解决问题的方式和角度各不相同&#xff0c;都有各自的适用域和局限性&#xff0c;对智能优化算法自身做的改进在算法性能方面得到了一定程度的提升&#xff0c;但算法缺点的解决并不彻底…

学生公寓智能电表控电系统的技术要求

学生公寓电表智能控电石家庄光大远通电气有限公司模块采用高精度计量芯片,的计量计费功能。 控制路数&#xff1a;可输出1~4路输出,每个回路都可以设置负载识别,定时断送过载功率等控电参数。 自动断电 &#xff1a;具有自动断电功能,可用电量为0时,应自动切断该分路电源 支持正…

创建Spring CloudDEMO流程

创建普通的maven工程作为父工程 然后设置字符集为UTF-8 再注解生效激活 java编译版本选择8 idea文件忽略&#xff08;忽略乱七八糟的文件&#xff09; *.hprof;*.pyc;*.pyo;*.rbc;*.yarb;*~;.DS_Store;.git;.hg;.svn;CVS;__pycache__;_svn;vssver.scc;vssver2.scc;.idea;*.iml…

TencentOS3.1安装PHP+Nginx+redis测试系统

PHP和Nginx应用统一安装在/application下。 Nginx选用了较新的版本1.25.0 官网下载安装包&#xff0c;解包。执行如下命令编译&#xff1a; ./configure --prefix/application/nginx-1.25.0 --usernginx --groupnginx --with-http_ssl_module --with-http_stub_status_modu…

win系统电脑在线打开sketch文件的方法

自Sketch诞生以来&#xff0c;只有Mac版本。Windows计算机如何在线打开Sketch文件&#xff1f; 即时设计已经解决了你遇到的大部分问题&#xff0c;不占用内存也是免费的。 您可以使用此软件直接在线打开Sketch文件&#xff0c;完整预览并导出CSS、SVG、PNG等&#xff0c;还具…

解析JSON格式数据

解析JSON格式数据 比起XML&#xff0c;JSON的体积更小&#xff0c;语义性更差 传入的JSON文件如下 使用JSONObject private fun parseJSONWithJSONObject(jsonData: String) { try { val jsonArray JSONArray(jsonData) for (i in 0 until jsonArray.length()){ val j…

视频去除水印怎么弄?这几个实用方法分享给大家!

在我们观看或分享视频时&#xff0c;可能会遇到一些带有水印的视频。这些水印可能会影响我们的观看体验&#xff0c;或者在我们需要使用这些视频时造成不便。下面&#xff0c;我将为你介绍三种去除视频水印的方法。 方法一&#xff1a;使用记灵在线工具 记灵在线工具是一个非…

Leetcode:684. 冗余连接(并查集C++)

目录 684. 冗余连接 题目描述&#xff1a; 实现代码与解析&#xff1a; 并查集 原理思路&#xff1a; 684. 冗余连接 题目描述&#xff1a; 树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n 个节点 (节点值 1&#xff5e;n) 的树中添加一条边后的图。添加的边的…

Python安装解释器

文章目录 一、下载Python解释器二. Linux环境的安装三. pycharm创建项目四、验证安装是否成功 一、下载Python解释器 首先&#xff0c;您需要从官方Python网站&#xff08;https://python.org&#xff09;下载Python解释器。Python的当前稳定版本是3.9.x系列。网站上提供了针对…

Anoym:一种以组合质押策略为特点的 LSD 设施

LSD&#xff08;Liquid Staking Derivatives&#xff09;&#xff0c;即流动性质押衍生品&#xff0c;目前主要包括Lido、Frax等主要项目&#xff0c;它是伴随着ETH 2.0升级成长起来的DeFi衍生品赛道。ETH 2.0 以 POS 为共识机制&#xff0c;节点需要质押 32 ETH 才能参与网络维…

三分钟了解 RocketMQ消息队列

文章目录 基本概念详细介绍主题&#xff08;Topic&#xff09;消息类型&#xff08;MessageType&#xff09;消息队列&#xff08;MessageQueue&#xff09;消息&#xff08;Message&#xff09;消息视图&#xff08;MessageView&#xff09;消息标签&#xff08;MessageTag&am…

【Linux后端服务器开发】Shell外壳

目录 一、Shell外壳概述 二、描述Shell外壳原理的生动例子 三、C语言模拟实现Shell外壳 一、Shell外壳概述 在狭义上 , 我们称Linux操作系统的内核为 Linux 在广义上 , Linux发行版 Linux内核 外壳程序 就比如市面上现在的redhat, centos, ubuntu等等我们耳熟能详的Linux发…

Apache Tomcat 信息泄露漏洞CVE-2023-28708处理

一、漏洞描述 Apache Tomcat软件是Jakarta Servlet、 Jakarta Server Pages、 Jakarta Expression Language、 Jakarta WebSocket、 Jakarta Annotations和 Jakarta Authentication 规范的开源实现 。Apache Tomcat实现了对Servlet和JavaServer Page&#xff08;JSP&#xff09…

C++输出编译器名称和版本以及编译器位数、C/C++常见编译器

使用C输出编译器的名称、版本和位数 #include<iostream>int main() {#ifdef __clang__std::cout << "Compiler: Clang" << std::endl;std::cout << "Version: " << __clang_major__ << "." << __cla…

Anaconda配置可视化绘图库seaborn的方法

本文介绍在Anaconda的环境中&#xff0c;安装Python语言中&#xff0c;常用的一个绘图库seaborn模块的方法。 seaborn模块是基于Matplotlib的数据可视化库&#xff0c;它提供了一种更简单、更漂亮的界面来创建各种统计图形。seaborn模块主要用于数据探索、数据分析和数据可视化…

多线程与并发编程【守护线程、线程同步】(三)-全面详解(学习总结---从入门到深化)

目录 守护线程 什么是守护线程 守护线程的使用 线程同步 实现线程同步 线程同步的使用 守护线程 什么是守护线程 在Java中有两类线程&#xff1a; User Thread(用户线程)&#xff1a;就是应用程序里的自定义线程。 Daemon Thread(守护线程)&#xff1a;比如垃圾回收线程&am…

串口问题案例分享

最近在调试一个新板子的时候&#xff0c;发现一个问题&#xff0c;板子使用的是一个国产的处理器芯片&#xff0c;表现为如果板子232串口的发送和接收与电脑串口连接时&#xff0c;板子可以正常进入系统。 但是如果板子与电脑只接232串口的发送信号&#xff0c;不接232串口的接…

Java入门--字面量

字面量 字面量是指在代码中直接表示特定的常量或值&#xff0c;可以是整数&#xff0c;浮点数&#xff0c;布尔值&#xff0c;字符等 演示 整数和小数 System.out.println(666);//小数System.out.println(99.5);快捷写法&#xff1a;666.sout 加回车 字符 字符必须用单引号…

docker安装es集群(三台)

文章目录 1、防火墙设置&#xff0c;开启所需端口2、创建目录&#xff0c;并更改目录权限3 设置系统参数4 启动5 安装ik分词器6 配置7 安装elasticsearch-head&#xff08;用于访问es&#xff0c;界面化工具&#xff09;8、 修改es中每次返回的数据数量参数&#xff08;默认100…