首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用float在网页中放置div?

如何使用float在网页中放置div?
EN

Stack Overflow用户
提问于 2020-12-08 11:40:26
回答 3查看 49关注 0票数 0

我已经做了一个简单的网页使用HTML和CSS。但是,当我调整浏览器的大小时,div会四处移动并失去它们原来的位置。我唯一的限制是我必须坚持使用浮动,而不是使用table等。

我想要我的布局是这样的-

HTML -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">

<body>
    <header>
        <div>
           <h1>Hello</h1>
        </div>   
    </header>

    <div class="a"><b>One</b></div>
    <div class="b"><b>Two</b></div>
    <div class="c"><b>Three</b></div>
    <p>
    <div class="d"><b>Four</b></div>
<body>

CSS -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
body {
  padding-top: 5em;
  text-align: center;
}

.a {
  float: left;
  width: 40%;
  vertical-align: middle;
  background-color: #fff;
  line-height: 7em;
  height: 7em;
  margin-left: 20em;
}

.b {
  float: left;
  width: 40%;
  vertical-align: middle;
  background-color: #fff;
  line-height: 7em;
  height: 7em;
  margin-left: 5em;
}

.c {
  float: left;
  width: 40%;
  vertical-align: middle;
  background-color: #fff;
  line-height: 7em;
  height: 7em;
  margin-left: 5em;
}

.d {
  float: left;
  width: 40%;
  vertical-align: middle;
  background-color: #fff;
  height: 7em;
  line-height: 7em;
  margin-left: 65.25%;
  margin-top: 2em;
}
EN

回答 3

Stack Overflow用户

发布于 2020-12-08 12:12:54

推荐:CSS Flexbox

父级需要以下属性:

  • display: flex
  • flex-flow: row-reverse将子项按照want
  • flex-wrap: wrap的顺序进行布局,以允许它们在父项中均匀分布,两端均无间隙

然后,您需要为子项指定一行的数量,并使用margin定义它们的间距,如下所示:

min-width: calc(100% / AMOUNT_CHILDREN - HORIZONTAL_GAP * 2),其中AMOUNT_CHILDREN是一行中元素的数量,HORIZONTAL_GAP是也在margin-property中定义的水平间距的数量。

备注:

仅当您希望子项占用指定的空间时,才需要该公式。如果您想让它们在合适的时候扩展或收缩,则不需要设置它。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
body {
  display: flex;
  flex-flow: row-reverse;
  flex-wrap: wrap;
  justify-content: space-between;
}
div {
  margin: 0.2rem;
  min-width: calc(100% / 3 - 0.2rem * 2);
  background: gray; /* To show the size of the elements */
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>

CSS Grid

父级需要以下属性:

  • display: grid
  • grid-template-columns: repeat(3, 1fr)表示3列,具有相等的space
  • Optional:gap: X,其中X是元素之间的间距

父元素还需要属性dir="rtl"来从右向左布局子元素(CSS Grid目前不支持更改换行方向,所以我们退回到使用HTML-attribute dir)。

父对象的方向由其子对象继承,这可能是不需要的。若要还原这一点,必须手动将属性dir="ltr"添加到每个子对象。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
body {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.4rem;
}
div {
  background: gray; /* Only to show the size of the element */
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<body dir="rtl">
  <div dir="ltr">A</div>
  <div dir="ltr">B</div>
  <div dir="ltr">C</div>
  <div dir="ltr">D</div>
</body>

备注:

HTML是一种标记语言,它的主要目的是通过格式化的方式来传达含义。若要设置标记样式,应使用CSS。

使用HTML -不打算以这种方式使用的样式功能会使标记变得混乱,特别是对于依赖于格式正确的HTML的人(例如,使用屏幕阅读器的盲人)。

当涉及到样式时,总是尝试坚持使用CSS。当然,分组元素,如<div><span>等,可以而且仍然应该用于支持样式,并且可能实际上在语义上符合您想要使用它们的方式。

浮动

首先,浮动实际上是为了让周围的元素能够在被浮动的元素周围浮动。这意味着,您想要使用它的方式并不是它的预期用途。因此,我推荐第一种方法(推荐: CSS Flexbox),但为了完整起见,我将展示如何使用float来实现它。

与Flexbox方法类似,我们可以给我们的孩子一个计算的宽度(有关公式,请参阅推荐的: CSS Flexbox一节)和float: right

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
div {
  margin: 0.2rem;
  min-width: calc(100% / 3 - 0.2rem * 2);
  float: right;
  background: gray;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div>A</div>
<div>B</div>
<div>C</div>
<div>D</div>

备注:

在我看来,布局应该主要从父级开始应用。

让元素自行布局意味着为了进行调试,您必须检查每个同级元素的CSS规则,以找到问题的原因。

让父级布局其子级会产生更清晰的代码,更有条理的代码结构,并使将来的更改更易于应用。

显然,让父级布局其子级并不总是可能的。position: absolute或类似的东西使得元素必须自己进行布局。

附注:

显然,还有许多其他方法可以实现想要的行为。然而,它们中的一些可能在某种程度上是“老生常谈”的,也可能不是现代方法。用户可以按照要求使用float: right,甚至可以使用JS来放置孩子。

票数 0
EN

Stack Overflow用户

发布于 2020-12-08 11:54:43

有一百万种方法可以按照你想要的方式组织你的网站。这里有一种方法。请看一下我为你做的这个例子。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
.container {
  text-align: right;
}

.a {
  display: inline-flex;
  width: 32%;
  background-color: gray;
}

.b {
display: inline-flex;
   width: 32%;
  background-color: gray;
}

.c {
display: inline-flex;
  width: 32%;
 background-color: gray;
}

.d {
display: inline-flex;
 width: 33%;
 background-color: gray;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">

<body>
    <header>
        <div>
           <h1>Hello</h1>
        </div>   
    </header>
<div class="container">
    <div class="a"><b>One</b></div>
    <div class="b"><b>Two</b></div>
    <div class="c"><b>Three</b></div>
    <div class="d"><b>Four</b></div>
</div>    
<body>

票数 -1
EN

Stack Overflow用户

发布于 2020-12-08 12:12:56

尝试使用CSS flex或grid处理响应网页。这是处理此类问题的最佳实践。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65198237

复制
相关文章
Python中根据时间自动创建文件夹
Python中根据时间自动创建文件夹 import shutil import os def remove_file(old_path, new_path): print(old_path) print(new_path) filelist = os.listdir(old_path) #列出该目录下的所有文件,listdir返回的文件列表是不包含路径的。 print(filelist) for file in filelist: src = os.
青阳
2021/03/31
1.4K0
查找目录中同名的文件或者文件夹
查找Linux、MAC下同名文件和文件夹。比如 Folder1和folder1 、filename1和Filename1。
用户3135539
2018/09/12
3.9K0
在WordPress媒体库中创建文件夹
WordPress默认后台媒体管理功能比较弱,不能整理不同类型媒体文件,如果您上传了大量媒体文件,都混杂在一起,无法管理,我们可以通过WordPress丰富的插件获得更好的媒体目录。
星哥玩云
2022/06/11
2.6K0
在WordPress媒体库中创建文件夹
WordPress自动在uploads文件夹内创建子文件夹
在开发主题或者插件的时候,经常要创建一个自定义的文件夹,我经常使用的一种方法就是在插件或主题安装的时候,先让程序自动到某个文件夹下先检测这个文件夹是否存在,如果不存在就自动创建一个文件夹。 下面的代码演示了如何在uploads文件夹中自动地创建一个自定义文件夹: function myplugin_activate() { $upload = wp_upload_dir(); $upload_dir = $upload['basedir']; $upload_dir = $upload_dir . '/my
Jeff
2018/01/19
1.7K0
spark读取多个文件夹(嵌套)下的多个文件
在正常调用过程中,难免需要对多个文件夹下的多个文件进行读取,然而之前只是明确了spark具备读取多个文件的能力。
sparkexpert
2022/05/07
3.2K0
使用Power Automate在Onedrive for Business中创建空文件夹
在Onedrive for Business(以下简称ODB)中创建一个文件是非常轻松的一件事:
陈学谦
2023/01/03
3.7K0
使用Power Automate在Onedrive for Business中创建空文件夹
Mac在文件夹/终端中打开终端/文件夹
如图,想要在终端中到该文件夹,自然而然的办法是cd /usr/share/doc/postfix/html, 但其实还有更简洁的办法,即如上安装Go2Shell或cd to插件
fliter
2023/06/18
1K0
Mac在文件夹/终端中打开终端/文件夹
在 Linux 中重命名文件夹中的所有文件
在Linux系统中,有时候我们需要批量重命名文件夹中的所有文件,以便更好地组织和管理文件。本文将详细介绍几种在Linux中重命名文件夹中所有文件的方法,包括使用命令行工具和脚本等方式。
网络技术联盟站
2023/06/08
5.1K0
在 Linux 中重命名文件夹中的所有文件
在 MSBuild 编译过程中操作文件和文件夹(检查存在/创建文件夹/读写文件/移动文件/复制文件/删除文件夹)
本文整理 MSBuild 在编译过程中对文件和文件夹处理的各种自带的编译任务(Task)。
walterlv
2023/10/22
3650
如何在Linux中创建文件?多个文件创建操作命令。
如果文件file1.txt不存在,则上面的命令将创建该文件,否则,它将更改其时间戳。
用户5005176
2021/08/10
39.2K0
python 遍历文件夹 查找大文件
import os path = "C:/" #文件夹目录 def eachFile(filepath): fileNames = os.listdir(filepath) # 获取当前路径下的文件名,返回List for file in fileNames: newDir = filepath + '/' + file # 将文件命加入到当前文件路径后面 if os.path.isfile(newDir): # 如果是文件 if os.path.splitext(newDir)[1] == ".txt": # 判断是否是txt size=os.path.getsize(newDir) size=size/(1024*1024) if size>100: print(newDir,size) else: eachFile(newDir) #如果不是文件,递归这个文件夹的路径
用户5760343
2019/07/07
2.8K0
Centos8中如何更改文件夹中多个文件的扩展名
在目录中递归更改文件扩展名的最常见方法是使用 shell 的 for 循环。我们可以使用 shell 脚本提示用户输入目标目录、旧的扩展名和新的扩展名以进行重命名。以下是脚本内容:
用户7639835
2021/09/01
3.7K0
Centos8中如何更改文件夹中多个文件的扩展名
在目录中递归更改文件扩展名的最常见方法是使用 shell 的 for 循环。我们可以使用 shell  提示用户输入目标目录、旧的扩展名和新的扩展名以进行重命名。以下是 内容:
用户1685462
2021/09/05
3.3K0
Centos8中如何更改文件夹中多个文件的扩展名
在目录中递归更改文件扩展名的最常见方法是使用 shell 的 for 循环。我们可以使用 shell 脚本提示用户输入目标目录、旧的扩展名和新的扩展名以进行重命名。以下是脚本内容:
用户9236362
2021/11/30
4K0
mac 在 home 目录下创建文件夹
编译 /etc/auto_master 文件,注释掉或者移除以 /home 开头的那一行,保存。
一个会写诗的程序员
2020/11/26
3.2K0
查找修改时间在指定区间的文件并打包
#!/bin/bash # find file and tar # joyousphper@gmail.com # find_and_tar.sh read -p "Please enter a search path (eg:/root/) >" search_path if [ -d $search_path ];then echo "find path $search_path" else echo "error: $search_path is not a directory" exit 0
苦咖啡
2018/05/08
1.3K0
在pycharm中如何将django中多个app放到同个文件夹apps处理
新建apps文件夹后mark为source目录,然后在Setting中import方式为
Ewdager
2020/07/14
2K0
问与答87: 如何根据列表内容在文件夹中查找图片并复制到另一个文件夹中?
Q:如何实现根据列表内容查找文件夹中的照片,并将照片剪切或复制到另外的文件夹?如下图1所示,在列C中有一系列身份证号。
fanjy
2020/09/25
2.9K0
问与答87: 如何根据列表内容在文件夹中查找图片并复制到另一个文件夹中?
Linux下在文件夹所有文件中查找相关内容
grep是在使用Linux时经常会用到的一个命令了,这个命令平时大都主要用来进行对一段输出的关键字定位,但是这个命令也可以通过使用某些参数来达到文件夹文件内容遍历的效果
impressionyang
2020/08/26
35.9K0
点击加载更多

相似问题

Applescript:在多个文件夹中创建新的文件夹结构

12

在熊猫中查找最接近给定时间的DataFrame行

30

Applescript:创建文件夹/子文件夹并移动多个文件

21

AppleScript查找包含特定文件的文件夹

14

创建文件夹Applescript

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文