html两个盒子怎么左右对其,关于html:在同一行上左右对齐两个内联块

如何对齐两个内联块,以便一个在左边,另一个在同一行? 为什么这么难? 是否有类似LaTeX的 hfill这样的东西可以占用它们之间的空间来实现这一目标?

我不想使用浮点数,因为有了内联块,我可以将基线对齐。 当窗口对于两个窗口而言都太小时,使用内联块,我可以将文本对齐方式更改为居中,并且它们将居中对齐。 相对(父)+绝对(元素)定位与浮点数存在相同的问题。

HTML5:

Title

A Link

Another Link

A Third Link

CSS:

header {

//text-align: center; // will set in js when the nav overflows (i think)

}

h1 {

display: inline-block;

margin-top: 0.321em;

}

nav {

display: inline-block;

vertical-align: baseline;

}

Thery彼此相邻,但我希望右侧的nav。

430038b02b35bd9678a0ffda4e2fea23.png

AFAIK解决此问题的唯一方法是使用浮动或绝对定位。 您可以使用导航上的margin-top获得相同的基线位置。

只需使用margin-top和float。 没有那种定位或绝对定位就不可能做到这一点。

使用css媒体查询可根据视口的大小更改css。 您可以同时使用position: absolute和inline-block

编辑:自从我回答这个问题以来已经过去了3年,我想还需要一种更现代的解决方案,尽管当前的解决方案是可行的:)

1.Flexbox

到目前为止,它是最短且最灵活的。将display: flex;应用于父容器,并通过justify-content: space-between;调整其子容器的放置,如下所示:

.header {

display: flex;

justify-content: space-between;

}

可以在此处在线查看-http://jsfiddle.net/skip405/NfeVh/1073/

但是请注意,flexbox支持是IE10及更高版本。如果需要支持IE 9或更早版本,请使用以下解决方案:

2.您可以在此处使用text-align: justify技术。

.header {

background: #ccc;

text-align: justify;

/* ie 7*/

*width: 100%;

*-ms-text-justify: distribute-all-lines;

*text-justify: distribute-all-lines;

}

.header:after{

content: '';

display: inline-block;

width: 100%;

height: 0;

font-size:0;

line-height:0;

}

h1 {

display: inline-block;

margin-top: 0.321em;

/* ie 7*/

*display: inline;

*zoom: 1;

*text-align: left;

}

.nav {

display: inline-block;

vertical-align: baseline;

/* ie 7*/

*display: inline;

*zoom:1;

*text-align: right;

}

可以在此处看到工作示例:http://jsfiddle.net/skip405/NfeVh/4/。此代码在IE7及更高版本中有效

如果HTML中的内联块元素未用空格分隔,则此解决方案将不起作用-请参见示例http://jsfiddle.net/NfeVh/1408/。当您使用Java脚本插入内容时,可能是这种情况。

如果我们不在乎IE7,则只需省略star-hack属性。使用标记的工作示例在此处-http://jsfiddle.net/skip405/NfeVh/5/。我只添加了header:after部分并说明了内容。

为了解决用after伪元素插入的额外空间的问题,可以做一个技巧,将父元素的font-size设置为0,子元素将其重置为14px。可以在这里看到此技巧的有效示例:http://jsfiddle.net/skip405/NfeVh/326/

有什么方法可以阻止它提高横幅的高度吗?我意识到这是如何工作的,所以我认为这里没有。

此解决方案非常优雅,而且足够高,这不是解决方法吗?它恰好增加了20个无用的像素:-(编辑:可能的解决方法,指定高度:NUMpx;在容器上,由于多种原因,这是非常糟糕的。

如果您使用javascript生成内容,请注意,仅当元素之间存在空格时,此解决方案才有效。您将需要在left / right元素之间插入一个文本节点,否则它们都将粘在左边。

@Valerio Coltr,我找到了解决此小问题的方法。如果将font-size: 1px设置为父容器,则多余的空间实际上将消失。只是现在,我们必须将子元素的font-size设置回正常状态-像这样:jsfiddle.net/skip405/NfeVh/326

您还可以将代码粘贴到这里吗?链接到外部场所的习惯有时会死掉,如果发生这种情况,那么本来有用的答案将突然变得无用。

@ValerioColtr我同意空白空间是这种方法中最令人讨厌的东西。显式管理font-size是相当不可取的。我提出了一个不同的解决方案。请注意,.header:after装饰器添加的一行高度等于font-size。幸运的是,我们知道那是多少。正是1em!因此,负利润可助您一臂之力!这个小提琴显示了如何。

我正在尝试在Firefox中执行类似操作,但无法正常工作。我发生两件事:1.不是正确的CSS选择器:: after,不是:after? 2. :: after选择器将内容而不是元素插入页面。如果内容不是元素,如何设置内容的宽度?无论如何,似乎正在为一些工作,但林困惑。

"所有支持双冒号(::) CSS3语法的浏览器也仅支持(:)语法,但IE 8仅支持单冒号" css-tricks.com/almanac/selectors/a/after-and-before

@ skip405注意:将包装元素(标题)上的行高设置为0并修复其伪元素的垂直对齐方式(vertical-align:top,例如)可以解决额外的空间问题。当然,我们必须在父元素上重新设置行高,但是在许多情况下它可能更容易。 jsfiddle.net/bencergazda/3gL8153n/7

@bencergazda,很酷,谢谢:)

@ skip405如果我正确阅读了问题,OP希望两个子项都在同一基线上对齐。也许您想考虑将此添加到您的答案中?放在这里:jsfiddle.net/c4pwtn5o-基本上是在.header上添加align-items: baseline;。

@JanPapenbrock,感谢您的建议。它确实在OP图像上看起来元素在同一基线上。但是,问题本身不在于垂直对齐。编辑被拒绝(顺便说一句,我拒绝)

@JanPapenbrock,更重要的是,OP明确表示可以line up the baselines。它能回答您的编辑为何被拒绝的原因吗?没有恶意?

我个人并不喜欢这种改进;-)我只是发现自己需要调整为基准-从问题图像中我还认为这也是OP的需要。 因此,我认为这将是一个很好的补充。 关于编辑和拒绝的原因,我知道这是形式问题(应该评论而不是编辑)而不是内容。

利用@ skip405的答案,我为此做了一个Sass mixin:

@mixin inline-block-lr($container,$left,$right){

#{$container}{

text-align: justify;

&:after{

content: '';

display: inline-block;

width: 100%;

height: 0;

font-size:0;

line-height:0;

}

}

#{$left} {

display: inline-block;

vertical-align: middle;

}

#{$right} {

display: inline-block;

vertical-align: middle;

}

}

它接受3个参数。容器,左元素和右元素。

例如,要适合这个问题,可以这样使用:

@include inline-block-lr('header', 'h1', 'nav');

如果您不想使用浮点数,则必须包装导航:

Title

A Link

Another Link

A Third Link

...并添加一些更具体的CSS:

header {

//text-align: center; // will set in js when the nav overflows (i think)

width:960px;/*Change as needed*/

height:75px;/*Change as needed*/

}

h1 {

display: inline-block;

margin-top: 0.321em;

}

#navWrap{

position:absolute;

top:50px; /*Change as needed*/

right:0;

}

nav {

display: inline-block;

vertical-align: baseline;

}

您可能需要做更多一点,但这只是一个开始。

我认为对此的一种可能的解决方案是使用display: table:

.header {

display: table;

width: 100%;

box-sizing: border-box;

}

.header > * {

display: table-cell;

}

.header > *:last-child {

text-align: right;

}

h1 {

font-size: 32px;

}

nav {

vertical-align: baseline;

}

JSFiddle:http://jsfiddle.net/yxxrnn7j/1/

如果您已经在屏幕过小时(根据标题的注释)使用JavaScript来使内容居中,那为什么不只是在使用JavaScript时撤消浮点数/边距,然后正常使用浮点数和边距。

您甚至可以使用CSS媒体查询来减少使用的JavaScript数量。

我想我还没有真正考虑过,似乎这样会更容易。但显然不是。关于我如何从javascript跳转到下一行的导航的任何提示?

啊,我可以使用媒体查询!我认为这些仅用于启动,而不用于调整大小。谢谢。

正确对齐项目的新方法:

网格:

.header {

display:grid;

grid-template-columns: 1fr auto;

}

演示

Bootstrap 4.右对齐:

left

element needs to be right aligned

演示

两种元素都使用

display: inline-block;

用于" nav"元素

float: right;

对于浮子,不能使用自动换行。

给它float:right和h1 float:left并在它们之后放置一个带有clear:的元素。

"我不想使用浮子"

@powerbuoy有趣,他选择了最后带有浮点数的解决方案,对吗?

@意大利:只是因为我认为这是唯一可能的方法,所以我改变了我接受的答案。

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

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

相关文章

Blog小技巧之二-让朋友在Blog上也能QQ到自己

首先打开“[url]http://is.qq.com/cgi-bin/webpresence/wpa_code?uin123456789[/url]”,把上面的123456789换成对方的QQ号。 然后选择想要的会话图片和提示。在“点击生成代码”中我们选择生成网页代码,这时我们可以得到一段网页代码,把它粘…

springboot 设置server.port不失效原因

配置服务启动的端口时&#xff0c;springboot默认在application.properties配置文件中提供了server.port配置项,但是启动后没有生效&#xff0c;其实该配置项要想生效其实是依赖于项目中内嵌的tomcat容器 内嵌tomcat的jar包依赖包含在pom中 <dependency><groupId>o…

计算机科学学院陈瑜,浙江大学城市学院计算机与计算科学学院 计算机科学与技术 陈则伦...

陈则伦省级优秀毕业生计算机1202所获奖项及荣誉&#xff1a;国家奖学金、学业优秀二等奖学金、学科竞赛优秀奖学金(团体一等)、学院“三好学生”荣誉称号、学业优秀二等奖学金2次、学科竞赛优秀奖学金(团体一等)、学科竞赛个人优秀二等奖学金2次、学院“三好学生”荣誉称号学科…

界限设置

进行完第2步后在新打开的图层中输入limits 回车 输入坐标0&#xff0c;0 回车 输入界面长宽按坐标的方式输入&#xff0c;如297&#xff0c;210 然后回车&#xff1b;按F7可以显示和关闭格子 转载于:https://www.cnblogs.com/2277098974-qqcom/p/6853829.html

com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFoundError: org/apache/poi/p

今天用 今天用easyexcel遇到这个报错 com.alibaba.excel.exception.ExcelAnalysisException: java.lang.NoClassDefFoundError: org/apache/poi/p 我用的是2.2.6版本 <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --><dependency><groupId…

mac Pycharm安装和激活

Pycharm 是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具&#xff0c;比如调试、语法高亮、Project管理&#xff0c;代码跳转&#xff0c;只能提示&#xff0c;自动完成&#xff0c;单元测试、脚本控制。此外&#xff0c;该IDE提供了一些高级功…

HP前女老板Dunn和Carly的琐碎事

HP是美国的一家综合的IT技术公司,它生产的打印机和各式电脑产品在中国可谓是家喻户晓。领导这家跨国技术集团公司的&#xff0c;曾经有过两位出名的女老板&#xff0c;她们是1999-2005在位的Carly Fiorina女士&#xff0c;以及2005-2006年在位的Patricia Dunn女士。 前者因为参…

tostring、(string)和 String.valueOf()

上周遇到一个问题&#xff0c;只怪自己平时没注意这个细节&#xff0c;从数据库取数据在map集合里&#xff0c;取出该值是我用了.tostring的方法&#xff0c;一次在当取出数据为空时代码报java.lang.NullPointerException空指针异常。而另外一个同时平时习惯行使用&#xff08;…

基于使用AspectJ实现AOP,注解AOP开发(基于xml文件、基于注解)

AOP概念 AOP是Aspect Oriented Programming的缩写&#xff0c;即『面向切面编程』。它和我们平时接触到的OOP都是编程的不同思想&#xff0c;OOP&#xff0c;即『面向对象编程』&#xff0c;它提倡的是将功能模块化&#xff0c;对象化&#xff0c;而AOP的思想&#xff0c;则不太…

唐山师范学院计算机考试,[河北]唐山师范学院2017年3月计算机一级考试报名时间...

唐山师范学院2017年上半年全国计算机等级考试(以下简称NCRE)将于3月份举行。按照教育部考试中心有关要求&#xff0c;现就报名工作有关事项通知如下&#xff1a;一、考试时间2017年上半年NCRE时间为3月25日-28日。二、报名事项说明(一)报名时间2017年上半年NCRE报名工作于2017年…

浅析Asp.net MVC 中Ajax的使用

在ASP.NET MVC beta中我们可以使用Ajax.BeginForm, Ajax.ActionLink来进行Ajax调用&#xff0c;同样我们也可以使用一些支持Ajax 框架如jQuery来简化对ajax的调用。一、使用System.Web.Mvc.Ajax 1.1 System.Web.Mvc.Ajax.BeginForm 1.2 System.Web.Mvc.Ajax.ActionLink 二、手工…

IronPython for ASP.NET:使用共享代码

IronPython入门教程第二篇使用共享代码&#xff0c;创建一个简单的IronPython类&#xff0c;并在ASP.NET页面中使用它。1&#xff0e;创建Web站点和ASP.NET页面&#xff0c;选择语言为IronPython。2&#xff0e;关于App_Script文件夹。经过上面第一步操作后&#xff0c;新建Web…

量子计算机到底神在哪里说明文,刘露《神奇的量子通信》初中说明文阅读及答案...

时至今日&#xff0c;究竟有没有一种绝对不可破译的保密方式&#xff0c;能让传送的信息绝对安全可靠&#xff1f;量子通信&#xff0c;就是迄今为止唯一被严格证明是无条件安全的通信方式。量子通信是利用量子力学基本原理进行信息传递的一种新型通信方式。理论上&#xff0c;…

SQLite—homework

主要的界面布局&#xff1a; <EditText android:id"id/edt" android:textSize"20dp" android:layout_width"match_parent" android:layout_height"wrap_content"/> <LinearLayout …

@EnableConfigurationProperties 注解和@ConfigurationProperties注解实现配置绑定

ConfigurationProperties注解主要用来把properties配置文件转化为bean来使用的&#xff0c;而EnableConfigurationProperties注解的作用是ConfigurationProperties注解生效。如果只配置ConfigurationProperties注解&#xff0c;在IOC容器中是获取不到properties配置文件转化的b…

debug=true开启自动配置报告

Negative matches:表示不生效的自动配置 Positive matches:表示生效的自动配置

计算机的键盘如何保养,知识每天涨一点:快捷键2 键盘键位知识 电脑小保养

快捷键2win菜单键 L 快速锁屏&#xff0c;如果加了密码的话就可以在自己离开的时候防止别人窥屏哦win菜单键 E 快速打开我的电脑&#xff0c;加快查找文件的速度win菜单键 R 在打开的运行页面中输入psr.exe 回车进入选择开始录制就可以录制电脑此时操作了(不是视频&#xff0c;…

Lombok中@Data注解 @ToString注解 @NoArgsConstructo注解 @AllArgsConstructor注解

1:项目中引入依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency> 2:实体类上加上Data注解可以生产get和set方法 ToString表示可以生成ToString方法 NoArgsConstructor表示无参构造器 …

MSSQL DBA权限获取WEBSHELL的过程

前言 本文主要通过一个案例来演示一下当MSSQL是DBA权限&#xff0c;且不知道路径的时候如何去获取WEBSHELL。当然这种方式对站库分离的无效。我测试的环境是在Win7 64位下&#xff0c;数据库是SQLServer 2000&#xff0c;IIS版本是7.5&#xff0c;程序是采用风讯的CMS。后台登录…