IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 前端巩固-3、导航栏练习分析 -> 正文阅读

[JavaScript知识库]前端巩固-3、导航栏练习分析

在这里插入图片描述

<!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>Document</title>
    <style>
        .nav_text{
            display: flex;/* flex布局 */
            flex-direction: row-reverse;/* 横向靠右排列,row默认左 */
        }
        nav{
            position: relative;/* position定位, relative相对定位*/
            background-color:#f38418
        }
        nav img{
            position: absolute;/*  absolute绝对定位*/
        }
        nav ul li{
            list-style: none;/*  去掉列表前的符号*/
            display: inline-block;/*  设置为行内块,不会换行*/
            margin: 30px 50px;/* 外边距*/
        }
    </style>
</head>
<body>
    <nav>
        <div><img src="\logo.jpg"> </div>
        <div class="nav_text">
            <ul>
                <li><a>泰迪</a></li>
                <li><a>可卡</a></li>
                <li><a>比熊</a></li>
                <li><a>博美</a></li>
                <li><a>边牧</a></li>
            </ul>
        </div>
        
    </nav>
</body>
</html>

一、了解-Flex布局

传统的布局方式有三种,标准流、浮动和定位
准则:多个块级元素纵向排列用标准流,横向排列用浮动

布局的传统解决方案,基于盒状模型,依赖 display属性 + position属性 + float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。
float布局缺点
给父元素添加 float :left 时会让父元素也脱离文档流 产生坍塌 !
如果子元素使用定位或外边距等方法超出该元素时会被隐藏 !
因此不建议使用 其 进行排版!

Flex布局
2009年,W3C提出了一种新的方案—-Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。
Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。
注意:设为 Flex 布局以后,子元素的float、clear和vertical-align属性将失效。
任何一个容器都可以指定为Flex布局。

属性包括

  • flex-direction 排列方向
  • flex-wrap
  • flex-flow
  • justify-content
  • align-items
  • align-content
    以下flex内容引用菜鸟教程https://www.runoob.com/w3cnote/flex-grammar.html
    1、 flex-direction属性
    flex-direction属性决定主轴的方向(即项目的排列方向)。
.box {
  flex-direction: row | row-reverse | column | column-reverse;
}

在这里插入图片描述
2、flex-wrap属性
默认情况下,项目都排在一条线(又称”轴线”)上。flex-wrap属性定义,如果一条轴线排不下,如何换行。
.box{
flex-wrap: nowrap | wrap | wrap-reverse;
}
(1)nowrap(默认):不换行。
(2)wrap:换行,第一行在上方。
(3)wrap-reverse:换行,第一行在下方。
3、 flex-flow
flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。

.box {
  flex-flow: <flex-direction> <flex-wrap>;
}

4 justify-content属性
justify-content属性定义了项目在主轴上的对齐方式。

.box {
justify-content: flex-start | flex-end | center | space-between | space-around;
}

  1. flex-start(默认值):左对齐
  2. flex-end:右对齐
  3. center: 居中
  4. space-between:两端对齐,项目之间的间隔都相等。
  5. space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

在这里插入图片描述
5 align-items属性
align-items属性定义项目在交叉轴上如何对齐。

.box {
align-items: flex-start | flex-end | center | baseline | stretch;
}
6 align-content属性
align-content属性定义了多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。

.box {
align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}

  • flex-start:与交叉轴的起点对齐。
  • flex-end:与交叉轴的终点对齐。
  • center:与交叉轴的中点对齐。
  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
  • space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
  • stretch(默认值):轴线占满整个交叉轴。

例子:

<head>
    <title>Document</title>
    <style>
        .nav{
            background: rebeccapurple;
        }
        .a{
            width: 100px;
            height: 200px;
            background-color: aqua;
        }
        .b{
            width: 100px;
            height: 200px;
            background-color:aquamarine;
        }
        .c{
            width: 100px;
            height: 200px;
            background-color: bisque;
        }
    </style>
</head>
<body>
    <div class="nav">
        <div class="a"></div>
        <div class="b"></div>
        <div class="c"></div>
    </div>
</body>

在这里插入图片描述
1、
.nav{
display: flex;
background: rebeccapurple;
}
在这里插入图片描述

二、定位

定位=定位模式+边偏移
(1)是否脱标
(2)以谁为基准点
定位有相对定位、绝对定位、固定定位、粘性定位
定位要点:
1)绝对定位盒子水平居中不能用auto,得用left:50%;margin-left:盒子的宽度一半
2)给行内元素设置定位后,可用设置宽和高
3)给块级元素加绝对或者固定定位,默认和内容大小相同
4)脱标的盒子不触及外边距塌陷
1、相对定位relative
特点:
(1)以它原来的位置为基准点
(2)原来在标准流的位置仍然继续占有
(3)不脱标
2、绝对定位absolute
特点:
(1)以父级元素为基准点,当元素没有父级元素或是父元素原来没有定位时,以浏览器为准
(2)以最近一级含有非static定位的父级元素为准
(3)脱标,不占有原来标准流的位置
一般这样用:子绝父相
3、固定定位ficed
特点:
(1)固定在浏览器的可视区范围,跟父元素没有关系
(2)脱标,不占有原来标准流的位置
4、粘性定位sticky(不常用)
特点:
(1)相对和固定的混合,以浏览器可视区为参照物移动
(2)不脱标

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:41:13  更:2022-03-13 21:41:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 6:59:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码