重学JavaWeb第二天(三)

简介: 重学JavaWeb第二天

测试代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        ul{
            width: 600px;
            border: 10px solid red;
            display: flex;
            justify-content: space-evenly;
        }
        li{
            width: 100px;
            height: 50px;
            background-color: khaki;
            text-align: center;
            line-height: 50px;
            font-size: 40px;
            flex-shrink: 0;
        }
        .box2{
            background-color: lightgreen;
        }
        .box3{
            background-color: lightsalmon;
        }
        .box4{
background-color:mediumpurple;
}
    </style>
</head>
<body>
    <ul>
        <li class="box1">1</li>
        <li class="box2">2</li>
        <li class="box3">3</li>
        <li class="box4">4</li>
    </ul>
</body>
</html>

align-items元素在 辅轴上如何对齐

  • stretch 默认值,将元素的长度设置为相同的值
  • flex-start 元素不会拉伸,沿着辅轴起边对齐
  • flex-end 沿着辅轴的终边对齐
  • center 居中对齐
  • baseline 基线对齐

image-20200505102837723.png

 align-items: stretch;

image-20200505102919358.png

align-items: flex-start;

image-20200505102949587.png

align-items: flex-end;

image-20200505103037766.png

align-items: center;

测试代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        ul{
            width: 300px;
            height: 500px;
            border: 10px solid red;
            display: flex;
            flex-flow: wrap row;
            /* justify-content: space-evenly; */
            align-items: center;
        }
        li{
            width: 100px;
            /* height: 50px; */
            /* background-color: khaki; */
            text-align: center;
            line-height: 50px;
            font-size: 40px;
            flex-shrink: 0;
        }
        .box1{
            background-color:tomato;
        }
        .box2{
            background-color: lightgreen;
        }
        .box3{
            background-color: lightsalmon;
        }
        .box4{
        background-color:mediumpurple;
        }
        .box5{
            background-color:teal;
        }
    </style>
</head>
<body>
    <ul>
        <li class="box1">1</li>
        <li class="box2">2
            <div>2</div>
        </li>
        <li class="box3">3
            <div>3</div>
            <div>3</div>
        </li>
        <li class="box4">4
            <div>4</div>
            <div>4</div>
            <div>4</div>
        </li>
        <li class="box5">5</li>
    </ul>
</body>
</html>

align-content:辅轴空白空间的分布

类似 justify-content

flex-start 元素沿着辅轴起边排列

flex-end 元素沿着辅轴终边排列

center 元素居中排列

space-around 空白分布到元素两侧

space-between 空白均匀分布到元素间

space-evenly 空白分布到元素的单侧(兼容性不好,不推荐使用)

image-20200506214040255.png

align-content: flex-start;

image-20200506214106378.png

 align-content: flex-end;

image-20200506214137280.png

align-content: center;

image-20200506214205661.png

align-content: space-around;

image-20200506214231412.png

align-content: space-between;

垂直水平居中

image-20200505103145530.png

align-items: center;
justify-content: center;

弹性元素

flex-grow 指定弹性元素的伸展的系数

  • 当父元素有多余空间的时,子元素如何伸展
  • 父元素的剩余空间,会按照比例进行分配,数值越高,权重越高。0表示不伸展
flex-grow: 1;

c5b6e82734ca05dc65183cdd42fd569a.png

flex-shrink 指定弹性元素的收缩系数

  • 当父元素中的空间不足以容纳所有的子元素时,如何对子元素进行收缩,数值越高,权重越高,0表示不收缩
flex-shrink: 1;

flex-basis 指定的是元素在主轴上的基础长度

如果主轴是 横向的 则 该值指定的就是元素的宽度

如果主轴是 纵向的 则 该值指定的是就是元素的高度

默认值是 auto,表示参考元素自身的高度或宽度

如果传递了一个具体的数值,则以该值为准

c92a40970da18002a873ea156d571822.png

flex-basis: 20px;

简写属性flex

flex 可以设置弹性元素所有的三个样式

flex 增长 缩减 基础;

a83b82756d667dbfb5f7d49a4fd56ade.png

 flex: 1 1 auto;

order设置弹性元素的排序顺序

  • 如果只设置一个元素的 order设置的元素排到最后

c5470f172153aed786a3178b4e0fbfbb.png

.box1{
            background-color:tomato;
            order: 4;
        }
        .box2{
            background-color: lightgreen;
            order: 3;
        }
        .box3{
            background-color: lightsalmon;
            order: 2;
        }
        .box4{
        background-color:mediumpurple;
        order: 1;
        }

align-self 用来覆盖当前弹性元素上的align-items

align-self: stretch;

练习

仿淘宝分类

d2d362a52d2b0c4fc48f99240a8b14f7.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <link rel="stylesheet" href="../static/css/reset.css">
    <style>
        body{
            background-color: rgb(244, 244, 244);
        }
        .box1{
            background-color: white;
            width: 100%;
        }
        ul{
            display: flex;
            justify-content: space-around;
        }
        li{
            width: 15%;
            /* background-color: turquoise; */
        }
        li img{
            width: 100%;
        }
        li a{
            text-align: center;
            display: inline-block;
            text-decoration: none;
        }
        li a span{
            display: block;
            margin-top: 10px;
            color: rgb(102, 102, 102);;
            font-size: 11px;
        }
    </style>
</head>
<body>
    <div class="box1">
    <ul>
        <li>
            <a href="#">
                <img src="../static/img/tb/1.png" alt="">
                <span>天猫新品</span>
            </a>
        </li>
        <li>
            <a href="#">
                <img src="../static/img/tb/2.png" alt="">
                <span>今日爆款</span>
            </a>
        </li>
        <li>
            <a href="#">
                <img src="../static/img/tb/3.png" alt="">
                <span>天猫国际</span>
            </a>
        </li>
        <li>
            <a href="#">
                <img src="../static/img/tb/4.png" alt="">
                <span>饿了吗</span>
            </a>
        </li>
        <li>
            <a href="#">
                <img src="../static/img/tb/5.png" alt="">
                <span>天猫超市</span>
            </a>
        </li>
    </ul>
    <ul>
        <li>
            <a href="#">
                <img src="../static/img/tb/6.png" alt="">
                <span>充值中心</span>
            </a>
        </li>
        <li>
            <a href="#">
                <img src="../static/img/tb/7.png" alt="">
                <span>机票酒店</span>
            </a>
        </li>
        <li>
            <a href="#">
                <img src="../static/img/tb/8.png" alt="">
                <span>金币庄园</span>
            </a>
        </li>
        <li>
            <a href="#">
                <img src="../static/img/tb/9.png" alt="">
                <span>阿里拍卖</span>
            </a>
        </li>
        <li>
            <a href="#">
                <img src="../static/img/tb/10.png" alt="">
                <span>淘宝吃货</span>
            </a>
        </li>
    </ul>
</div>
</body>
</html>

定位

定位(position)

  • 定位是一种更加高级的布局手段
  • 通过定位可以将元素摆放到页面的任意位置
  • 使用position属性来设置定位
  • 可选值:

static 默认值,元素是静止的没有开启定位

relative 开启元素的相对定位

absolute 开启元素的绝对定位

fixed 开启元素的固定定位

sticky 开启元素的粘滞定位

相对定位

相对定位:


当元素的position属性值设置为relative时则开启了元素的相对定位


相对定位的特点:


1.元素开启相对定位以后,如果不设置偏移量元素不会发生任何的变化


2.相对定位是参照于元素在文档流中的位置进行定位的


3.相对定位会提升元素的层级


4.相对定位不会使元素脱离文档流


5.相对定位不会改变元素的性质块还是块,行内还是行内


偏移量(offset)

当元素开启了定位以后,可以通过偏移量来设置元素的位置


top


定位元素和定位位置上边的距离


bottom


定位元素和定位位置下边的距离


定位元素垂直方向的位置由top和bottom两个属性来控制


通常情况下我们只会使用其中一


top值越大,定位元素越向下移动

bottom值越大,定位元素越向上移动

left

定位元素和定位位置的左侧距离

right

定位元素和定位位置的右侧距离

定位元素水平方向的位置由left和right两个属性控制

通常情况下只会使用一个

left越大元素越靠右

right越大元素越靠左

 .box1{
            height: 200px;
            width: 200px;
            background-color: springgreen;
        }
        .box2{
            height: 200px;
            width: 200px;
            background-color:steelblue;
            position: relative;
            left: 200px;
            top: -200px;
        }
        .box3{
            height: 200px;
            width: 200px;
            background-color:tan;
        }
 <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>

27ac87a9146e1e70282d9d371b6b9306.png

绝对定位

  • 当元素的position属性值设置为absolute时,则开启了元素的绝对定位
  • 绝对定位的特点:

1.开启绝对定位后,如果不设置偏移量元素的位置不会发生变化

2.开启绝对定位后,元素会从文档流中脱离

3.绝对定位会改变元素的性质,行内变成块,块的宽高被内容撑开

4.绝对定位会使元素提升一个层级

5.绝对定位元素是相对于其包含块进行定位的

          包含块( containing block )
              - 正常情况下:
                  包含块就是离当前元素最近的祖先**块元素**
      绝对定位的包含块:
        包含块就是**离它最近**的**开启了定位**的**祖先元素**,
                                      **如果所有的祖先元素都没有开启定位则根元素就是它的包含块**
  • html(根元素、初始包含块)
<div class="box1">1</div>
    <div class="box4">
        4
        <div class="box5">
            5
            <div class="box2">2</div>
        </div>
    </div>
    <div class="box3">3</div>
body{
            font-size: 60px;
        }
        .box1{
            width: 200px;
            height: 200px;
            background-color: #bfa;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: orange;
            position: absolute;
            /* left: 0;
            top: 0; */
            bottom: 0;
            right: 0;
        }
        .box3{
            width: 200px;
            height: 200px;
            background-color: yellow;
        }
        .box4{
            width: 400px;
            height: 400px;
            background-color: tomato;
            position: relative;
        }
        .box5{
            width: 300px;
            height: 300px;
            background-color: aliceblue;
            /* position: relative; */
        }

image-20200501082038795.png


目录
相关文章
|
5月前
|
JSON Java 应用服务中间件
JavaWeb项目之乱码问题及如何解决
JavaWeb项目之乱码问题及如何解决
|
22天前
|
设计模式 Java 关系型数据库
【Java笔记+踩坑汇总】Java基础+JavaWeb+SSM+SpringBoot+SpringCloud+瑞吉外卖/谷粒商城/学成在线+设计模式+面试题汇总+性能调优/架构设计+源码解析
本文是“Java学习路线”专栏的导航文章,目标是为Java初学者和初中高级工程师提供一套完整的Java学习路线。
178 37
|
4月前
|
存储 前端开发 JavaScript
基于JavaWeb实现停车场管理系统
基于JavaWeb实现停车场管理系统
|
4月前
|
前端开发 JavaScript Java
图书借阅管理平台|基于JavaWeb实现图书借阅系统
图书借阅管理平台|基于JavaWeb实现图书借阅系统
|
22天前
|
缓存 前端开发 Java
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
Soring Boot的起步依赖、启动流程、自动装配、常用的注解、Spring MVC的执行流程、对MVC的理解、RestFull风格、为什么service层要写接口、MyBatis的缓存机制、$和#有什么区别、resultType和resultMap区别、cookie和session的区别是什么?session的工作原理
【Java面试题汇总】Spring,SpringBoot,SpringMVC,Mybatis,JavaWeb篇(2023版)
|
6天前
|
安全 Java Android开发
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
JavaWeb解压缩漏洞之ZipSlip与Zip炸弹
22 2
|
4月前
|
前端开发 Java 关系型数据库
JavaWeb开发简介
JavaWeb开发简介
45 0
|
23天前
|
SQL JSON JavaScript
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
Vue 指令、生命周期、this和$、vue脚手架进行模块化开发/ElementUI框架、综合案例,element商品列表展示增删改查
JavaWeb基础9——VUE,Element&整合Javaweb的商品管理系统
|
4月前
|
SQL Java 数据库连接
JavaWeb Mapper代理开发
JavaWeb Mapper代理开发
|
3月前
|
存储 程序员
JavaWeb之Listener监听器
JavaWeb之Listener监听器
45 0
下一篇
无影云桌面