Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用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

复制
相关文章
react 纯函数组件_react类组件
定义:一个函数的返回结果只依赖于它的参数,并且在执行的过程中没有副作用,我们就把该函数称作纯函数。
全栈程序员站长
2022/11/17
1.6K0
react 纯函数组件_react类组件
【多角度】react中类组件与函数组件区别
类组件内部可以定义并维护 state, 函数组件为无状态组件(可以通过hooks实现)
用户9914333
2022/12/14
1.8K0
【多角度】react中类组件与函数组件区别
React 函数组件和类组件的区别
两者最明显的不同就是在语法上: 函数组件是一个纯函数,它接收一个 props 对象返回一个 react 元素; 类组件需要去继承 React.Component 并且创建 render 函数返回 react 元素,虽然实现的效果相同,但需要更多的代码。
Leophen
2021/07/08
7.5K0
react 函数组件中 props应用
在 React 函数组件中,可以通过 props 对象来接收传递给组件的属性(props)。以下是一些常见的 props:
程序员王天
2023/10/18
1990
React :(类、函数)子组件调用父组件的方法
子组件中使用传过来的cancelCreateFile【this.props.cancelCreateFile】,就可以在子组件中调用
江一铭
2022/09/23
5.3K0
React :(类、函数)子组件调用父组件的方法
React - 组件:函数组件
1. 组件名字首字母一定是大写的 2. 返回一个jsx 3. jsx依赖React,所以组件内部需要引入React 4. 组件传参 a. 传递. <Component list={ arrData }><Component> b. 接收. function Component( props ){...} c. 使用. const { list } = props,list就是参数数据 5. 缺点:【无状态组件】只能实现很简单的视图展示功能,没有自己的内容数据、没有状态,没有逻辑处理,【没有this】,【没有生命周期】。 6. 16.7以后版本的react有状态和钩子函数提供使用。不过版本过新不推荐用 内部不用render函数,会自动把return返回结果当做render返回结果【见类组件的必须要求】
xing.org1^
2019/11/26
1.8K0
React - 组件:函数组件
React Hooks 源码解析(1):类组件、函数组件、纯组件
React 源码版本: v16.9.0 源码注释笔记:airingursb/react 1 Class Component VS. Functional Component 根据 React 官网,React 中的组件可分为函数式组件(Functional Component)与类组件(Class Component)。 1.1 Class Component 这是一个我们熟悉的类组件: // Class Componmentclass Welcome extends React.Component {
QQ音乐前端团队
2019/10/21
2.1K0
react中类组件传值,函数组件传值:父子组件传值、非父子组件传值[通俗易懂]
函数组件中我们一般情况下使用useEffect实现数据的请求 // useEffect Hook 看做 componentDidMount,componentDidUpdate 和 componentWillUnmount (加载,更新,卸载)这三个函数的组合。 语法格式: useEffect(()=>{ },[])
全栈程序员站长
2022/08/30
6.3K0
React中父组件执行子组件的函数 使用class + onRef写法
在React中,父组件执行子组件的函数的写法如下 父组件中 添加函数 onRef = (ref) => { this.child = ref } 在使用子组件时 <ChildComponet onRef={this.onRef} /> onRef是固定的用法, 在子组件里 componentDidMount(){ this.props.onRef(this) } 父组件执行子组件的函数 submitFun = () => { this.child.onReset(); }
拿我格子衫来
2022/01/24
3.6K0
React函数式组件
React函数式组件是一种用函数定义的组件形式,它是React中定义UI的一种简洁方式。函数式组件基于纯函数的概念,接收props作为参数,并返回要渲染的内容。
堕落飞鸟
2023/05/19
6650
「React进阶」我在函数组件中可以随便写 —— 最通俗异步组件原理
接下来的几篇文章将围绕一些‘猎奇’场景,从原理颠覆对 React 的认识。每一个场景下背后都透漏出 React 原理,
用户6835371
2021/10/18
3.8K0
「React进阶」我在函数组件中可以随便写 —— 最通俗异步组件原理
【Flutter】Image 组件 ( Image 组件简介 | Image 构造函数 | Image.network 构造函数 | Image.asset 构造函数 )
Flutter 中用于展示图片的控件是 Image , 类似于 Android 中的 ImageView , iOS 中的 UIImageView ;
韩曙亮
2023/03/29
2.1K0
React组件设计模式-纯组件,函数组件,高阶组件
如果你想写的组件只包含一个 render 方法,并且不包含 state,那么使用函数组件就会更简单。我们不需要定义一个继承于 React.Component 的类,我们可以定义一个函数,这个函数接收 props 作为参数,然后返回需要渲染的元素。
xiaofeng123aa
2022/10/18
2.2K0
React篇(020)-如何在 React 中创建组件?
答案:有两种可行的方法来创建一个组件: 1. Function Components: 这是创建组件最简单的方式。这些是纯 JavaScript 函数,接受 props 对象作为第一个参数并返回 React 元素:
齐丶先丶森
2022/05/12
2.9K0
React 的类组件和函数组件之间的区别是什么?
语法和写法:类组件是使用类的语法进行定义的,它继承自 React.Component 类,并且需要实现 render() 方法来返回组件的 JSX。函数组件是使用函数的语法进行定义的,它接收一个 props 对象作为参数,并返回组件的 JSX。 示例:类组件
王小婷
2023/10/09
5240
React - 组件:类组件
他有自己的生命周期也有react给他提供的一些内置函数方法。有自己的this和状态。
xing.org1^
2019/12/11
2K0
React - 组件:类组件
React-父子组件通讯-函数式组件
在了解父子组件通讯这个知识点的时候,首先要说明清楚一点内容就是什么是父组件什么是子组件,在上一篇 React-组件开篇当中我们在 App.js 类组件当中使用到了其它的一些组件,那么 App 就是父组件,被 App 所使用的就是子组件,了解了什么是父子组件之后,介绍要来介绍一下它们之间该如何进行通讯,也就是传递数据和方法,父组件传递数据给子,子传递给父的这么一个过程就是称之为父子组件的通讯。
杨不易呀
2023/09/30
2670
react 学习(二) 实现类和函数式组件
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom 转为真实 dom 进行挂载。其实函数是组件和类组件也是在这个基础上包裹了一层,一个是调用函数返回虚拟 dom,一个是调用实例的 render 方法,返回虚拟 dom,进而转换为真实 dom,本小节我们了解一下具体的实现原理。
测不准
2022/04/06
2.2K6
react 学习(二) 实现类和函数式组件
解析C#类中的构造函数
彭泽0902
2018/01/04
3.4K0
点击加载更多

相似问题

在呈现之前调用React组件的函数

31

主组件构造函数中的React类

30

构造函数和呈现方法在react组件中运行两次。

20

组件在调用构造函数或ngOnInit之前呈现。

20

如何在react js中呈现函数组件之前获取数据

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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