详解CSS(三)及案例实现

目录

1.弹性布局

1.1 弹性布局案例

1.2flex 布局基本概念

1.3常用属性

1.3.1justify-content

1.3.2align-items

2.案例实现:小广告

3.案例实现:百度热榜


1.弹性布局

弹性布局(Flex布局)是一种用于创建自适应和响应式布局的CSS布局模型。它提供了一种简单而强大的方式来排列和对齐页面中的元素,使其在不同的屏幕尺寸和设备上能够保持良好的显示效果

弹性布局的主要特点包括:

  1. 简单易用:相比传统的布局方式,弹性布局使用相对简单的属性来控制布局,减少了复杂的 CSS 代码。
  2. 响应式设计:能够自动适应不同的屏幕尺寸和设备,使布局在各种情况下都能保持良好的显示效果。
  3. 灵活的排列方式:可以通过设置主轴和交叉轴的方向,以及项目在轴上的对齐方式,实现各种不同的排列效果。
  4. 支持换行:可以控制项目在容器中是否换行,以及换行的方式。
  5. 子元素属性失效:当元素设置为弹性布局时,一些传统的 CSS 属性,如 float、clear 和 vertical-align 可能会失效。

1.1 弹性布局案例

创建一个div,内部包含三个span

    <style>
        div {
            width: 100%;
            height: 150px;
            background-color:red;
        }
        span {
            background-color: green;
            width: 100px;
        }
    </style>
    <div>
        <span>111</span>
        <span>222</span>
        <span>333</span>
    </div>

此时看到的效果为:

当我们给div加上display: flex之后,效果为:
此时看到, span 有了高度, 不再是 "行内元素了"

再给 div 加上  justify-content: space-around;  此时效果为:

此时可以看到这些 span 已经能够水平隔开了.

 justify-content: space-around;   改为  justify-content: flex-end; 此时三个元素在右侧显示

1.2flex 布局基本概念

lex flexible box 的缩写. 意思为 "弹性盒子".

任何一个 html 元素, 都可以指定为  display:flex 完成弹性布.

flex 布局的本质是给父盒子添加  display:flex 属性, 控制子盒子的位置和排列方式.

基础概念:

·  被设置为 display:flex 属性的元素, 称为 flex container

·  它的所有子元素立刻称为了该容器的成员, 称为 flex item

·  flex item 可以纵向排列, 也可以横向排列, 称为 flex direction(主轴)

注意:

当父元素设置为 display: flex 之后, 子元素的 float, clear, vertical-align 都会失效.

1.3常用属性

1.3.1justify-content

设置主轴上的子元素排列方式、使用前一定要确定好主轴方向

属性取值

 代码示例:

    <style>
        div {
            width: 100%;
            height: 150px;
            background-color:red;
            
            display: flex;    
        }
        span {
            background-color: green;
            width: 100px;
            height: 100px;
        }
    </style>

    <div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
        <span>4</span>
        <span>5</span>
    </div>

未指定 justify-content , 默认按照从左到右的方向布.

设置 justify-content: flex-end , 此时元素都排列到右侧了.

设置 jutify-content: center , 此时元素居中排列

设置 justify-content: space-around;

平分了剩余空间.

设置 justify-content: space-between;

先两边元素贴近边缘, 再平分剩余空间.

1.3.2align-items

设置侧轴上的元素排列方式

在上面的代码中, 我们是让元素按照主轴的方向排列, 同理我们也可以指定元素按照侧轴方向排列.

取值和 justify-content 差不多. 

理解 stretch(拉伸):

是 align-content 的默认值. 如果子元素没有被显式指定高度, 那么就会填充满父元素的高度、形如:

    <style>
        div {
            width: 500px;
            height: 500px;
            background-color: green;
            display: flex;
            justify-content: space-around;          
        }
        div span {
            width: 150px;
            background-color: red;
        }
    </style>

    <div>
        <span>1</span>
        <span>2</span>
        <span>3</span>
    </div>

可以在div中加上 align-items: center 实现垂直居中.并且在span中需要加上元素高度和宽度

注意: align-items 只能针对单行元素来实现. 如果有多行元素, 就需要使用 item-contents

2.案例实现:小广告

预期效果

测量结果:

代码示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Comatible" content="IE=edge"
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box {
            width: 308px;
            height: 209px;
            border: #d8dad8 solid 2px;
            background-color: #fcfffc;
            margin: auto;
        }
        .title {    
            height: 40px;
            border-bottom: 2px dotted #e8ebe8;
            font-size: 18px;
            padding-left: 20px;
            padding-top: 15px;
        }
      
        .item {
            font-size: 16px;
            flood-color: #898b76;
            padding-left: 25px;
            line-height: 28px;
            padding-top: 10px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div class="title">广告板</div>
        <div class="content">
            <div class="item">赔钱清仓甩卖,全场一律八折</div>
            <div class="item">赔钱清仓甩卖,全场一律八折</div>
            <div class="item">赔钱清仓甩卖,全场一律八折</div>
            <div class="item">赔钱清仓甩卖,全场一律八折</div>
        </div>

    </div>
</body>
</html>

3.案例实现:百度热榜

预期效果:

代码实现:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>百度热榜</title>
    <style>
        a {
            color: blue;
            text-decoration: none;
        }
        a:hover {
            text-decoration: underline;
        }
        table {
            width: 536px;
        }
        .title .col-1 {
            font-size: 20px;
            font-weight: bolder;
        }
        .col-1 {
            width: 80%;
            text-align: left;
        }
        .col-2 {
            width: 20%;
            text-align: center;
        }
        .icon {
            background-image: url(./refresh.png);
            width: 20px;
            height: 20px;
            background-size: 100% 100%;
            display: inline-block;
            vertical-align: bottom;
        }
        .content {
            font-size: 18px;
            line-height: 40px; 
        }
        .content .col-1,.content .col-2 {
            border-bottom: 2px solid #f3f3f3;
        }
        .num {
            font-size: 20px;
            color: #fffff3; 
        }
        .first {
            background-color: #f54545;
            padding-right: 8px;
        }
        .second {
            background-color: #ff8547;
            padding-right: 8px;
        }
        .third {
            background-color: #ffac38;
            padding-right: 8px;
        }
        .other {
            background-color: #8eb9f5;
            padding-right: 8px;
        }
    </style>
</head>
<body>
    <table cellspacing="0px">
        <th class="titile col-1">百度热榜</th>
        <th class="title col-2"><a href="#">换一换<span class="icon"></span></a></th>
        <tr class="content">
            <td class="col-1"><span class="num first">1</span><a href="#">黑子说话黑子说话黑子说话</a></td>
            <td class="col-2">474万</td>
        </tr>
        <tr class="content">
            <td class="col-1"><span class="second first">2</span><a href="#">黑子说话黑子说话黑子说话</a></td>
            <td class="col-2">474万</td>
        </tr>
        <tr class="content">
            <td class="col-1"><span class="third first">3</span><a href="#">黑子说话黑子说话黑子说话</a></td>
            <td class="col-2">474万</td>
        </tr>
        <tr class="content">
            <td class="col-1"><span class="other first">4</span><a href="#">黑子说话黑子说话黑子说话</a></td>
            <td class="col-2">474万</td>
        </tr>
    </table>

</body>
</html>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SEC突发:以太坊ETF大概率获批

美国证监会大概率批准以太坊现货ETF。 5月20日&#xff0c;据外媒CoinDesk报道&#xff0c;知情人士透露&#xff0c;美国SEC周一要求证券交易所更新以太坊现货ETF的19b-4备案文件。19b-4备案文件是一种表格&#xff0c;用于向SEC通报允许基金在交易所交易的规则变更。 三位消息…

STM32启动过程分析

Keil堆栈设置注意事项 一、启动模式 复位方式&#xff1a;上电复位、硬件复位、软件复位 从地址0x0000 0000处取出堆栈指针MSP的初始值&#xff0c;该值就是栈顶地址。从地址0x0000 0004处取出程序计数器指针PC的初始值&#xff0c;该值指向复位后执行的第一条指令。 说白了就…

新能源汽车为乙炔炭黑行业带来了发展机遇

新能源汽车为乙炔炭黑行业带来了发展机遇 乙炔炭黑&#xff08;Acetylene carbon black&#xff09;又称乙炔黑&#xff0c;外观为黑色极细粉末&#xff0c;相对密度1.95&#xff08;氮置换法&#xff09;&#xff0c;纯度很高&#xff0c;含碳量大于99.5%&#xff0c;氢含量小…

智能水抄表系统是什么?

1.概述&#xff1a;智能水抄表系统的概念与意义 智能水抄表系统是现代科技与水资源管理的完美结合&#xff0c;它利用先进的传感器技术、无线通信技术和数据分析能力&#xff0c;实现了远程、实时的水表读取和管理。这种系统不仅提高了抄表效率&#xff0c;降低了人力成本&…

品牌做电商控价的原因

品牌控价确实是一项至关重要的任务&#xff0c;它关乎着品牌形象、市场定位以及长期发展的稳定性。在电商平台上&#xff0c;价格的公开性和透明度使得消费者、经销商和其他渠道参与方都能够轻易地进行价格比较。因此&#xff0c;品牌方必须对电商渠道的价格进行严格的管控&…

百世慧入选第七届数字中国建设峰会“2024企业数字化转型典型应用案例”

5月24日-25日&#xff0c;第七届数字中国建设峰会在福州举行。本届峰会是国家数据工作体系优化调整后首次举办的数字中国建设峰会&#xff0c;主题为“释放数据要素价值&#xff0c;发展新质生产力”。 为了全方位展示各领域数字化最新成果&#xff0c;共创数字中国美好未来&a…

C++容器之双端队列(std::deque)

目录 1 概述2 使用实例3 接口使用3.1 construct3.2 assigns3.3 iterators3.4 capacity3.5 rezize3.6 shrink_to_fit3.7 access3.8 assign3.9 push_back3.10 push_front3.11 pop_back3.12 pop_front3.13 insert3.14 erase3.15 swap3.16 clear3.17 emplace3.18 emplace_front3.19…

跨境卖家必看!亚马逊商品3D建模怎么实现?

亚马逊引领3D内容革命&#xff0c;助力卖家提升商品展现力 亚马逊于2023年12月发布了一项重大公告&#xff0c;正式宣布&#xff1a;“平台将不再接受将360图像上传至产品详细页面的请求&#xff0c;而是全面采用3D模型来替代。”这一决策无疑预示着3D内容将在亚马逊平台上迎来…

【JavaScript】P3 JavaScipt 注释方法、结束符、输入输出

小结&#xff1a; Js 注释&#xff1a; 单行注释&#xff1a;//多行注释&#xff1a;/* */ Js 结束符&#xff1a; 分号; 可以加也可以不加 Js 输入输出&#xff1a; 输入&#xff1a;prompt()输出&#xff1a;document.write() 在页面中打印&#xff0c;console.log() 在控制…

天津企业采购云管平台需要考虑哪些?选择哪家好?

随着天津上云企业的增加&#xff0c;云管理需求也逐步增加。因此采购云管平台是非常必要的。那天津企业采购云管平台需要考虑哪些&#xff1f;选择哪家好&#xff1f; 天津企业采购云管平台需要考虑哪些&#xff1f; 【回答】&#xff1a;天津企业采购云管平台需要考虑的因素比…

Go 实现 WebSocket 的双向通信

在Go语言中实现WebSocket的双向通信通常需要使用第三方库&#xff0c;其中 gorilla/websocket 是一个非常流行和广泛使用的库。 1、安装 go get github.com/gorilla/websocket 2、编写WebSocket服务器代码 package mainimport ("fmt""github.com/gorilla/we…

FTP协议——Pure-Ftpd安装(Linux)

1、简介 Pure-FTPd是一个高效、免费且开源的FTP服务器软件&#xff0c;广泛应用于各种Unix/Linux系统。它以其易用性、高安全性和功能丰富而闻名&#xff0c;适用于个人和企业的文件传输需求。 2、步骤 环境&#xff1a;Ubuntu 22.04.4 下载地址&#xff1a;Index of /pub/p…

第十二周 5.20 面向对象的三大特性(封装、继承、多态)(一)

一、封装 1.目前的程序无法保证数据的安全性、容易造成业务数据的错误 2.private:私有的&#xff0c;被private修饰的内容只能在本类中访问 3.为私有化的属性提供公开的get和set方法 (1)get方法&#xff0c;获取私有化属性的值&#xff1a; public 返回值类型 get属性名…

Creating parameterized straight waveguide in INTERCONNECT 创建参数化的器件

Creating parameterized straight waveguide in INTERCONNECT 创建参数化的器件 引言正文引言 之前,我们在 INTERCONNECT 中使用库中器件制作一个损耗为 3 dB /m 的直波导 一文中介绍了如何使用 Library 中的直波导来进行仿真,这里我们简单介绍如何在 INTERCONNECT 中创建属…

Eureka全面解析:轻松实现高效服务发现与治理!

一、引言 Eureka是Netflix开源的一款服务发现框架&#xff0c;它提供了一种高效的服务注册和发现机制&#xff0c;适用于大规模分布式系统。本文将详细介绍Eureka的相关知识。 二、Eureka简介 Eureka是一个基于REST的服务发现框架&#xff0c;它提供了一种简单的服务注册和发…

LeetCode刷题之HOT100之最长回文串

2024/5/28 大家上午好啊&#xff0c;我又来做题了 1、题目描述 2、逻辑分析 题目要求找出最长的回文子串。我回去看了一下回文数字和回文链表这两道题。这个题目的思想其实跟以上两题也差不多&#xff0c;但是结合了最长子串这一概念。那么怎么解决这个题目呢&#xff1f;那么…

数据库中字符串相加需要换行

数据库中字符串相加需要换行&#xff0c;这个需求在现在项目中很常见&#xff0c;特别是备注内容的追加&#xff0c;因此把Oracle/SQLServer/MySQL这几种数据库的使用进行简单的总结一下 1、本文内容 Oracle中实现字符串相加需要换行SQLServer中实现字符串相加需要换行MySQL中…

使用BigDecimal定义的实体类字段返回给前台的是字符串类型,如何返回数字类型

目录 前言&#xff1a; 问题现象&#xff1a; 解决方法&#xff1a; 效果&#xff1a; 前言&#xff1a; 做项目的时候数据字段通常定义为bigdecimal类型&#xff0c;方便进行运算&#xff0c;但是发现接口调用后返回给前台的是字符串&#xff0c;这篇博文讲的是如何将定义…

下半年开考,仅考1次,系统集成项目管理工程师考试安排!

《系统集成项目管理工程师教程》第3版官方教材将在下半年开始使用&#xff0c;相对于之前的版本&#xff0c;变化很大。新老考生都需要重新学习。历年真题显示&#xff0c;官方教材非常重要&#xff0c;考试题目大部分都可以在教材中找到原文。因此&#xff0c;对于下半年的考试…

1109 擅长C(测试点0,1,2,3)

当你被面试官要求用 C 写一个“Hello World”时&#xff0c;有本事像下图显示的那样写一个出来吗&#xff1f; ..C.. .C.C. C...C CCCCC C...C C...C C...C CCCC. C...C C...C CCCC. C...C C...C CCCC. .CCC. C...C C.... C.... C.... C...C .CCC. CCCC. C...C C...C C...C C…