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,一经查实,立即删除!

相关文章

奉献给你:《Visual C# 2005程序开发与界面设计秘诀》

对于《Visual C# 2005程序开发与界面设计秘诀》,我们将其定位为一本Visual C# 2005的进阶技术研讨书,针对的是曾使用过Visual C# 2002或者已经对新版本的Visual C# 2005有些了解的读者。在这本书里面,使用了将近130个小节以及范例&#xff0c…

.net的轻量级ORM -- PetaPoco/NPOCO框架使用说明

.net的轻量级ORM -- PetaPoco/NPOCO框架使用说明(具体参看:http://www.toptensoftware.com/petapoco/) 从11年就开始尝试使用轻量级ORM:PetaPoco,下文是基本使用方法。另外NPoco是PetaPoco的升级版,是另外一个人维护,原版PetaPoco基本不再维护…

mysql错误Please use SHOW DDL to check it, and then recover or rollback it using RECOVER DDL or ROLLBAC

Please use SHOW DDL to check it, and then recover or rollback it using RECOVER DDL or ROLLBACK DDL, mysql执行DDL语句的时候提示错误: [Err] 4644 - [1065507aa5d0c000][10.0.85.135:3306][test]ERR-CODE: [TDDL-4644][ERR_PENDING_DDL_JOB_EXISTS] Anoth…

计算机网络读后感500字,《网络少年》观后感500字作文

我还 觉得我们应该像索拉拉老师那样正确使用电脑,利用它来帮助我们学习、工作,利用它来充实生活,寻找乐趣,而不是单纯地利用它来玩电脑游戏。下面是小编为你们整理的几篇文章,希望你们喜欢阅读。《网络少年》观后感500…

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

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

Linux中常见目录的作用

bin目录 有四个bin目录,分别是/bin、/sbin、/usr/bin/、/usr/sbin/  用来保存系统命令,区别是 前两个目录下的命令所有用户都可以执行,后两个目录下的命令只有超级用户可以执行boot目录 启动目录,保存的是用户的启动数据dev目录…

springboot 设置server.port不失效原因

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

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

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

gcc对C语言的扩展:局部标签声明(Locally Declared Labels)

每个语句内嵌表达式都是一个可以声明局部跳转标签的域。一个局部标签只是一个标识符&#xff1a;你可以使用通常的goto语句跳到它&#xff0d;&#xff0d;但是只能在它所属的域内这么做。一个局部标签的申明如下&#xff1a;__label__ label;或者&#xff1a;__label__ label1…

界限设置

进行完第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…

计算机专业的大学生活演讲稿,大学生演讲稿3到5分钟

3大学生演讲稿3到5分钟篇二尊敬的领导老师&#xff0c;亲爱的同学们&#xff1a;大家晚上好&#xff0c;我是来自会计院20XX级会计电算化5班的李晓丹&#xff0c;很荣幸这天有机会站在那里作为出色学生代表与大家交流我的学习故事。相信在我的故事里也必须有不少在坐的同学们身…

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女士。 前者因为参…

计算机术语设备透明性,计算机中术语透明性是什么意思?

一、透明性(transparency)定义&#xff1a;在通信网中&#xff0c;不改变信号形式和信息内容的端到端传输。二、透明性现象&#xff1a;在计算机技术中&#xff0c;一种本来是存在的事物或属性&#xff0c;但从某个角度看似乎不存在&#xff0c;称为透明性现象。通常&#xff0…

C/S和B/S

一、什么是C/S和B/S 要想对“C/S”和“B/S”技术发展变化有所了解&#xff0c;首先必须搞清楚三个问题。 第一、什么是C/S结构。 C/S&#xff08;Client/Server&#xff09;结构&#xff0c;即大家熟知的客户机和服务器结构。它是软件系统体系结构&#xff0c;通过它可以充分利…

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;则不太…

湖北大学 计算机考研,湖北大学考研难吗?一般要什么水平才可以进入?

问&#xff1a;从湖北大学毕业的学生就业怎么样&#xff1f;值不值得报考&#xff1f;想要了解湖北大学更多毕业生就业情况见>>>湖北大学总之&#xff0c;湖北大学就业率相对来说是比较良好的&#xff0c;如果大家对此学校感兴趣的话&#xff0c;可以大胆备考&#xf…

手机被锁在耳机模式了

我的多普达575昨晚突然被锁在耳机模式中&#xff0c;怎么也恢复不到正常模式。后来一急&#xff0c;干脆恢复出厂设置。天啦&#xff0c;还是不行。幸亏这是智能手机&#xff0c;所有的资料都备份在我的电脑上。最后上网查查&#xff0c;原来是因为耳机孔中的弹簧没有复位。问同…