草庐IT

html - 问题让 Div 靠近另一个拥抱

coder 2023-08-11 原文

我在一个容器 Div 中有 6 个 Div。这些 div 必须以某种方式对齐以满足客户的需求。我已经为我正在处理的客户网站采用了基本布局,并创建了一个要在此处发布的示例。我有一个常规 CSS 文件和一个移动 CSS 文件。在移动 View 中时,Divs 将按顺序 1-6 对齐。在常规 View 中,Divs 1、3、4 和 5 将向右对齐。 Div 2 和 6 将向左对齐。除了大约 10px 之外,我需要 div 6 来拥抱 div 2 的底部。使用我当前的代码,Divs 之间存在巨大差距,并且 6 被进一步推到页面下方,右侧 Divs 具有更多内容。所有这些 Div 都有动态内容,可以使它们增加或减少显示的内容量。我怎样才能让 Div 6 忽略右侧的 Div 并拥抱 Div 2 而不会搞砸这些在移动设备中的压缩和显示方式? (您只需调整浏览器窗口的大小,即可让移动版本显示此代码。)

这是我的 HTML 和 CSS:

/*
exampleCSS.css
*/
#containerDiv {
    width: 500px;
    margin-left: auto;
    margin-right: auto;
    padding: 10px;
}

#div1 {
    border: 1px solid red;
    background-color: red;
    margin-bottom: 10px;
    width: 25%;
    float: right;
}

#div2 {
    border: 1px solid blue;
    background-color: blue;
    margin-bottom: 10px;
    width: 65%;
    float: left;
}

#div3 {
    border: 1px solid green;
    background-color: green;
    margin-bottom: 10px;
    width: 25%;
    float: right;
}

#div4 {
    border: 1px solid orange;
    background-color: orange;
    margin-bottom: 10px;
    width: 25%;
    float: right;
    clear: right;
}

#div5 {
    border: 1px solid purple;
    background-color: purple;
    margin-bottom: 10px;
    width: 25%;
    float: right;
    clear: right;
}

#div6 {
    border: 1px solid pink;
    background-color: pink;
    margin-bottom: 10px;
    width: 65%;
    float: left;
}

/*
exampleCSSMobile.css
*/
#containerDiv {
    width: 100%;
}

#div1 {
    border: 1px solid red;
    background-color: red;
    margin-bottom: 10px;
    width: 100%;
}

#div2 {
    border: 1px solid blue;
    background-color: blue;
    margin-bottom: 10px;
    width: 100%;
}

#div3 {
    border: 1px solid green;
    background-color: green;
    margin-bottom: 10px;
    width: 100%;
}

#div4 {
    border: 1px solid orange;
    background-color: orange;
    margin-bottom: 10px;
    width: 100%;
}

#div5 {
    border: 1px solid purple;
    background-color: purple;
    margin-bottom: 10px;
    width: 100%;
}

#div6 {
    border: 1px solid pink;
    background-color: pink;
    margin-bottom: 10px;
    width: 100%;
}
<!DOCTYPE html>
<html>
    <head>
        <title>Example HTML</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link href="exampleCSSMobile.css" media="(max-width: 940px)" rel="stylesheet" type="text/css" />
        <link href="exampleCSS.css" media="(min-width: 940px)" rel="stylesheet"  type="text/css" />
    </head>
    <body>
        <div id="containerDiv">
            <div id="div1"><p>Test 1 Lorem Ipsum.</p></div>
            <div id="div2"><p>Test 2 Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. Duis sed odio sit amet nibh vulputate 
                            cursus a sit neque. Suspendisse in orci enim. Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. Duis sed odio sit amet nibh vulputate 
                            cursus a sit neque. Suspendisse in orci enim. Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. Duis sed odio sit amet nibh vulputate 
                            cursus a sit neque. Suspendisse in orci enim. Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. Duis sed odio sit amet nibh vulputate 
                            cursus a sit neque. Suspendisse in orci enim.</p></div>
            <div id="div3"><p>Test 3 Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. </p></div>
            <div id="div4"><p>Test 4 Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. Duis sed odio sit amet nibh vulputate 
                            cursus a sit neque. Suspendisse in orci enim.</p></div>
            <div id="div5"><p>Test 5 Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. Duis sed odio sit amet nibh vulputate 
                            cursus a sit neque. Suspendisse in orci enim.</p></div>
            <div id="div6"><p>Test 6 Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. Duis sed odio sit amet nibh vulputate 
                            cursus a sit neque. Suspendisse in orci enim. Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. Duis sed odio sit amet nibh vulputate 
                            cursus a sit neque. Suspendisse in orci enim. Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. Duis sed odio sit amet nibh vulputate 
                            cursus a sit neque. Suspendisse in orci enim. Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. Duis sed odio sit amet nibh vulputate 
                            cursus a sit neque. Suspendisse in orci enim. Lorem Ipsum. Prion gravida nibh vel velit auctor 
                            aliquet. Aenean solicitudin, lorem quis bibendum 
                            auctor, nisi elit consquat ipsum, nec sagittas sem 
                            nibh id elit. Duis sed odio sit amet nibh vulputate 
                            cursus a sit neque. Suspendisse in orci enim.</p></div>
        </div>
    </body>
</html>

示例图片,空格介于 2 和 6 之间:

最佳答案

float 元素会尽可能地向左或向右移动在它原来的位置(这很重要#1)。

所以这样说:

我们有2个div

<div class="div5">div5</div>
<div class="div6">div6</div>

.div-blue{
    width:100px;
    height:100px;
    background: blue;
}

.div-red{
    width:50px;
    height:50px;
    background: red;
}

没有float他们会一个比一个低

如果我们 float: right div5 , div6当它是div5时被定位在线上,

/*the lines are just for illustrate*/

所以如果现在我们 float: left div6它会尽可能地向左移动,“在这一行”(参见上面的#1),所以如果div5改行,div6将遵循它。

现在让我们将其他 div 添加到等式中

<div class="div4">div4</div>
<div class="div5">div5</div>
<div class="div6">div6</div>

.div-gree{
    width:150px;
    height:150px;
    background: green;

    float:right;
}

我们有这个

如果我们设置 clear: rightdiv5 ,我们强制它走下面的线div4

所以你知道为什么会发生。 Here the jsfiddle where I code this

现在,如何修复它

只需删除 <div id="div6"> 的 float 并设置 display: inline-block

像这样:

#div6 {
    border: 1px solid pink;
    background-color: pink;
    margin-bottom: 10px;
    width: 65%;

    /*float: left;*/    /*removed*/

    display: inline-block;  /*added*/
}

这将保持没有 float 的元素的正常行为( float 元素之后的元素将围绕它流动。)。 display: inline-block是为了你的情况维护margindiv2 .

HERE A JSFIDDLE EXAMPLE WORKING FOR YOUR CASE

我希望这对现在和将来有所帮助:)

关于html - 问题让 Div 靠近另一个拥抱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30813047/

有关html - 问题让 Div 靠近另一个拥抱的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  4. ruby - 使用 Vim Rails,您可以创建一个新的迁移文件并一次性打开它吗? - 2

    使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta

  5. ruby-on-rails - Rails - 一个 View 中的多个模型 - 2

    我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何

  6. ruby-on-rails - 渲染另一个 Controller 的 View - 2

    我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>

  7. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  8. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  9. ruby-on-rails - 如果 Object::try 被发送到一个 nil 对象,为什么它会起作用? - 2

    如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象

  10. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

随机推荐