[CSS]常见布局技巧

news2025/7/1 0:56:32

前言

  • 系列文章目录:
    • [目录]HTML CSS JS
  • 根据视频和PPT整理
  • 视频及对应资料:
  • HTML CSS
    • 老师笔记: https://gitee.com/xiaoqiang001/html_css_material.git
    • 视频:黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程
    • 视频对应资源
    • 链接:【https://pan.baidu.com/s/1k1dpC6iGA93c6gVsUvPqYw】
    • 提取码:1234
    • 【GitHub 仓库链接】

文章目录

  • 前言
  • 1. margin负值的运用
  • 2. 文字围绕浮动元素
  • 3. 行内块的巧妙运用
  • 4. CSS三角强化


1. margin负值的运用

多个盒子进行浮动,同时为每个盒子设置边框,会导致相邻盒子相接触的位置边框变粗。

在这里插入图片描述

此时可以使用margin将其值设置为负数,对上一个的边框进行覆盖,使得相邻位置的边框没有那么粗。

代码示例:

<style>
  div {
    float: left;
    width: 100px;
    height: 200px;
    margin-left: -2px;
    background-color: aquamarine;
    border: 2px solid black;
  }
</style>
<body>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</body>

在这里插入图片描述

实现鼠标经过,盒子的边框颜色改变:

<style>
  div {
    position: relative;
    float: left;
    width: 100px;
    height: 200px;
    margin-left: -2px;
    background-color: aquamarine;
    border: 2px solid black;
  }
  div:hover {
    /* 由于后面的盒子覆盖了前面的盒子,所以要将前面的盒子层级提高 */
    /* 如果没有有定位,则加相对定位(保留位置) */
    /* position: relative; */
    border: 2px solid red;
    /* 如果有定位,则加z-index */
    z-index: 1;
  }
</style>
<body>
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</body>

在这里插入图片描述

2. 文字围绕浮动元素

实现下图效果,是利用浮动元素不会压住文字。

在这里插入图片描述

<style>
  .box {
    width: 300px;
    height: 70px;
    background-color: aquamarine;
  }
  .inner {
    /* 盒子进行浮动 */
    /* 由于浮动不会压住文字,可以实现文字在盒子右边环绕显示 */
    float: left;
    width: 120px;
    height: 70px;
    margin-right: 5px;
    background-color: cadetblue;
  }
</style>
<body>
  <div class="box">
    <div class="inner"></div>
    <span>hello world! hello world! hello world! hello world! </span>
  </div>
</body>

在这里插入图片描述

3. 行内块的巧妙运用

使用行内块元素实现下图效果:

在这里插入图片描述

  <style>
    a {
      /* 取消 a 标签的默认样式 */
      color: #000;
      text-decoration: none;
    }
    .box {
      /* 行内块元素页面水平居中 */
      text-align: center;
    }
    .box a {
      display: inline-block;
      /* width: 36px; */
      height: 36px;
      /* 内边距 内容与左右边框的距离 */
      padding: 0 14px;
      background-color: #f7f7f7;
      border: 1px solid #ccc;
      font-size: 14px;
      /* 水平居中 */
      /* 继承父元素 */
      /* text-align: center; */
      /* 垂直居中 */
      line-height: 36px;
    }
    .box a:hover,
    .box .elp {
      background-color: #fff;
      border: none;
    }
    /* 输入框 */
    .box input {
      width: 45px;
      height: 36px;
      border: 1px solid #ccc;
      /* 取消获取焦点时的边框样式 */
      outline: none;
    }
    /* 确定按钮 */
    .box button {
      width: 60px;
      height: 36px;
      background-color: #f7f7f7;
      border: 1px solid #ccc;
    }
  </style>
  <body>
    <div class="box">
      <a href="#">&lt;&lt;上一页</a>
      <a href="#">1</a>
      <a href="#">2</a>
      <a href="#">3</a>
      <a href="#">4</a>
      <a href="#">5</a>
      <a href="#" class="elp">...</a>
      <a href="#">&gt;&gt;下一页</a>
      到第
      <input type="text"><button>确定</button>
    </div>
  </body>

在这里插入图片描述

4. CSS三角强化

实现下图效果:
在这里插入图片描述

三角形实现:

<style>
  .box1 {
    width: 40px;
    height: 80px;
    padding: 40px;
    background-color: aquamarine;
  }
  .box1 .inner {
    width: 0;
    height: 0;
    /* 顶部的边框可以撑开三角形的高度 */
    /* 上边框宽度调大 */
    border-top: 80px solid red;
    border-right: 40px solid black;
    /* 底部边框为0 可以不让三角形为等腰 */
    /* 底部和左边边框宽度为0 */
    border-bottom: 0px solid transparent;
    border-left: 0px solid transparent;
  }
</style>
<body>
  <div class="box1">
    <div class="inner"></div>
  </div>

</body>

在这里插入图片描述

案例效果实现:

<style>
  .box {
    width: 160px;
    height: 24px;
    border: 1px solid red;
    /* 文字居中 */
    text-align: center;
  }
  .left {
    /* 自绝父相 */
    position: relative;
    /* 浮动会覆盖盒子,但是不覆盖文字 */
    float: left;
    width: 90px;
    height: 100%;
    background-color: red;
  }
  .box i {
    position: absolute;
    top: 0;
    right: 0;
    width: 0;
    height: 0;
    /* 边框的颜色  只有右边框有颜色 白色*/
    border-color: transparent #fff transparent transparent;
    border-style: solid;
    /* 上右边框有宽度 */
    border-width: 24px 12px 0 0;
  }
</style>
<body>
  <div class="box">
    <span class="left">¥1650<i></i></span>
    <span class="right">¥5650</span>
  </div>

</body>

在这里插入图片描述

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

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

相关文章

榛子树搜索算法(Hazelnut tree search algorithm,HTS)附matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;修心和技术同步精进&#xff0c;matlab项目合作可私信。 &#x1f34e;个人主页&#xff1a;Matlab科研工作室 &#x1f34a;个人信条&#xff1a;格物致知。 更多Matlab仿真内容点击&#x1f447; 智能优化算法 …

c++基础(十四)——继承

一、继承的基本语法 继承是面向对象三大特性之一&#xff0c;有些类与类之间存在特殊的关系&#xff0c;当定义这些类时&#xff0c;下级别的成员除了拥有上一级的共性&#xff0c;还有自己的特性。这个时候我们就可以考虑利用继承的技术&#xff0c;减少重复代码。 基本语法&…

HotStuff:基于高效 BFT-SMR 共识的区块链

参考资料&#xff1a; Yin M, Malkhi D, Reiter M K, et al. HotStuff: BFT consensus in the lens of blockchain[J]. arXiv preprint arXiv:1803.05069, 2018.Michael J. Fischer, Nancy A. Lynch, and Mike Paterson. Impossibility of distributed consensus with one fau…

为什么网络安全缺口很大,而招聘却很少?

2020年我国网络空间安全人才数量缺口超过了140万&#xff0c;就业人数却只有10多万&#xff0c;缺口高达了93%。这里就有人会问了&#xff1a; 1、网络安全行业为什么这么缺人&#xff1f; 2、明明人才那么稀缺&#xff0c;为什么招聘时招安全的人员却没有那么多呢&#xff1…

Spring-security流程讲解01:basic模式

1&#xff1a;有basic模式认证&#xff1a; 1.0Maven依赖&#xff1a; <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.2.1.RELEASE</version> </parent…

UGUI DrawCall的优化 工作记录

优化前&#xff1a; UGUI DrawCall调用256次 优化原则&#xff1a; 不追求极致&#xff0c;差不多就行了主要优化 静态不动的节点&#xff0c;避免改变脚本 优化思路&#xff1a; 3. 对现有的图集进行微调 4. 处理图文混排 打断合批的问题&#xff0c;微调节点的父子关系和节…

图解LeetCode——754. 到达终点数字(难度:中等)

一、题目 在一根无限长的数轴上&#xff0c;你站在 0 的位置。终点在 target 的位置。 你可以做一些数量的移动 numMoves : 每次你可以选择向左或向右移动。第 i 次移动&#xff08;从 i 1 开始&#xff0c;到 i numMoves &#xff09;&#xff0c;在选择的方向上走 i 步。…

vue11Vuex解说+子父传参详细使用

目录 1. vue组件间通讯 1.1 父子组件 1.2 消息总线 1.3 vuex 2. vuex使用 2.1 简介 2.2 安装 2.3 创建store模块 2.4 创建vuex的store实例并注册上面引入的各大模块 2.5 在main.js中导入vuex 3. 将折叠和展开效果使用vuex实现 3.1 在state.js中声明全局参数 3.2 设…

10 月更新 | Visual Studio Code Python

我们很高兴地宣布&#xff0c;2022 年 10 月发布的适用于 Visual Studio Code Python 和 Jupyter 扩展现已推出&#xff01; 此版本包括以下改进&#xff1a; 使用新的创建环境命令简化项目设置 现在可以为 Pylance 提供包含、排除和忽略路径设置 预发布的 autopep8 扩展 P…

【Linux】yum和vim的使用

文章目录一、Linux软件包管理器-yum1. 概念2. 安装软件3. 卸载软件4. 查看软件包5. 更新软件包二、Linux编辑器-vim1. 基本概念2. 基本操作3. 正常模式命令集4. 末行模式命令集三、总结一、Linux软件包管理器-yum 1. 概念 什么是软件包&#xff1f; 在Linux下安装软件, 一个常…

es实操笔记

Elasticsearch提供了一个非常全面和强大的REST API&#xff0c;可以使用它与集群进行交互。咱们来玩一下。 环境搭建 搭建好es和kinaba&#xff0c;可以访问通过ip:9200查看es的信息&#xff0c;ip:5601打开kinaba。 集群相关 健康检查 curl localhost:9200/_cat/health?v…

Linux 网络之netlink 简介

文章目录前言一、Netlink用户态应用的使用1.1 Netlink socket1.2 Netlink宏操作二、Netlink对应数据结构2.1 struct sockaddr_nl2.2 struct nlmsghdr2.3 struct msghdr三、用户层实例参考资料前言 The Netlink socket family 是一个 Linux 内核接口&#xff0c;用于内核和用户…

网课查题接口

网课查题接口 本平台优点&#xff1a;免费查题接口搭建 多题库查题、独立后台、响应速度快、全网平台可查、功能最全&#xff01; 1.想要给自己的公众号获得查题接口&#xff0c;只需要两步&#xff01; 2.题库&#xff1a;题库后台http://daili.jueguangzhe.cn/ 题库后台&am…

[前端基础] CSS3 篇

CSS3 使用了层叠样式表技术&#xff0c;可以对网页布局、字体、颜色、背景灯效果做出控制。CSS3 作为 CSS 的进阶版&#xff0c;拆分和增加了盒子模型、列表模块、语言模块 、背景边框 、文字特效 、多栏布局等等。CSS3 的改变有很多&#xff0c;增加了文字特效&#xff0c;丰富…

C#基础知识

文章目录简介隐式显式转换ifswitch循环随机数方法do whilestatic递归数组foreachvar推断类型,父类二维数组&#xff0c;交错数组当方法参数类型确定&#xff0c;个数不确定时数据类型类型分类快捷方式函数参数&#xff1a;引用、输出参数装箱&#xff0c;拆箱string储存地址枚举…

Netty入门——组件(Channel)二

目录一、channel的主要作用二、EventLoop处理io任务代码示例2.1、服务端代码示例2.2、客户端代码示例2.3、服务端和客户端查看控制台输出结果三、CloseFuture关闭问题代码示例3.1、服务端代码示例3.2、客户端代码示例3.3、服务端和客户端查看控制台输出结果3.4、CloseFuture关闭…

【C++ STL】-- deque与vector相比的优势与劣势

目录 deque容器 与stack相比deque的优缺点&#xff1a; deque的迭代器 deque的成员函数 deque容器 deque的相关文档 deque与vector十分的相识。vector是单向开口的连续线性空间&#xff08;单向扩容&#xff09;&#xff0c;deque则是一种双向开口的连续线性空间&#xff…

GIC/ITS代码分析(9)中断应用实例之IPI中断

PPI中断为外设私有中断&#xff0c;在ARM64上arch_timer为PPI中断。这里以arch_timer为例&#xff08;代码位置drivers/clocksource/arm_arch_timer.c&#xff09;&#xff0c;作应用实例讲解。 先对ARM64通用定时器作简要介绍。通用定时器为Arm core提供标准定时器。通用定时器…

VSCode下载安装与使用教程

目录1. 打开官网进行下载安装2. 下载3. 安装4. 使用4.1 python extensions4.2 建立 python 工作区4.3 运行python代码的 3 种方法方法一&#xff1a;点击按钮方法二&#xff1a;右键菜单方法三&#xff1a;交互式解释器5. debug参考资料VSCode是一款免费开源的现代化轻量级代码…

【C++修炼之路】8. string类详解

每一个不曾起舞的日子都是对生命的辜负 C之string类本节目标1. string类概览1.1 string的由来1.2 string函数列表2.string常用接口1. 初始化2. string::npos3. c_str()4. 获取长度&#xff08;length、size)5. 容量&#xff08;size、capacity)6. 插入&#xff08;insert)7. 替…