如何在已经居中对齐的元素周围添加元素?

2024-01-05

我创建了一个表单,其中一些文本元素垂直对齐,如下所示:

它们使用 Flexbox 在页面上水平和垂直居中:

.my-class {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction:column;
}

我现在要做的就是保持这种对齐方式(即将页面上的所有内容都保持在原来的位置),同时在第一个文本框的两侧添加一些元素。我尝试将所有东西都包裹在一个div但由于文本框两侧的元素宽度不同,因此文本框会失去对齐方式:

正如您所看到的,长文本框现在没有对齐。如何在第一个文本框之前和之后添加元素而不移动它的位置?


假设它是网址/密码/按钮那些是要居中的,而https/路径粘在每一侧,我会这样做,我使用柔性row容器和伪元素将每组项目分成自己的行。

通过此标记,人们还可以完全控制根据屏幕宽度等在项目周围移动。

使这项工作有效的两个主要因素是伪元素,它们以其全宽迫使它们进入自己的行,同时将内容与order属性,能够将它们放置在pass and auth分别。

堆栈片段

.flex {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;     /*  horiz. center items  */
  align-content: center;       /*  vert. center wrapped items  */
  /*align-items: center;*/     /*  vert. center unwrapped items  */
}
.flex div:nth-child(1),
.flex div:nth-child(3) {       /*  https/path item  */
  flex: 1;                     /*  share space left equal  */
}
.flex div:nth-child(2),
.flex div:nth-child(4) {       /*  url/pass item  */
  flex-basis: 300px;           /*  need equal width  */
}
.flex::before {                /*  1st line breaker  */
  content: ''; width: 100%;
  order: 1;
}
.flex div:nth-child(4) {
  order: 2;
}
.flex::after {                 /*  2nd line breaker  */
  content: ''; width: 100%;
  order: 3;
}
.flex div:nth-child(5) {
  order: 4;
}

/*  styling  */
.flex {
  height: 200px;
  border: 1px solid red;
}
.flex span {
  display: inline-block;
  border: 1px solid gray;
  padding: 2px;
  margin: 2px;
}
.flex div:nth-child(2) span,
.flex div:nth-child(4) span {
  width: calc(100% - 10px);
}
.flex div:nth-child(1) {
  text-align: right;
}
<div class="flex">
  <div><span>http(s)</span></div>
  <div><span>url</span></div>
  <div><span>path</span></div>
  <div><span>***</span></div>
  <div><span>authenticate</span></div>
</div>

如果宽度url/pass应随父级宽度缩放,结合使用百分比和 CSS Calc。

堆栈片段

.flex {
  display: flex;
  flex-flow: row wrap;
  justify-content: center;
  align-content: center;
}
.flex div:nth-child(1),
.flex div:nth-child(3) {
  flex: 1;
}
.flex div:nth-child(2),
.flex div:nth-child(4) {
  flex-basis: 60%;
}
.flex::before {
  content: ''; width: 100%;
  order: 1;
}
.flex div:nth-child(4) {
  order: 2;
}
.flex::after {
  content: ''; width: 100%;
  order: 3;
}
.flex div:nth-child(5) {
  order: 4;
}

/*  styling  */
.flex {
  height: 200px;
  border: 1px solid red;
}
.flex span {
  display: inline-block;
  border: 1px solid gray;
  padding: 2px;
  margin: 2px;
}
.flex div:nth-child(2) span,
.flex div:nth-child(4) span {
  width: calc(100% - 10px);
}
.flex div:nth-child(1) {
  text-align: right;
}
<div class="flex">
  <div><span>http(s)</span></div>
  <div><span>url</span></div>
  <div><span>path</span></div>
  <div><span>***</span></div>
  <div><span>authenticate</span></div>
</div>

另一种选择是保持最初的弹性column方向,并使用额外的包装器使用绝对定位http(s)/路径 items.

.flex {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}
.flex > div:nth-child(-n+2) {
  position: relative;
  width: 60%;
}
.flex div div:nth-child(1) {
  position: absolute;
  top: 0;
  right: 100%;
}
.flex div div:nth-child(3) {
  position: absolute;
  top: 0;
  left: 100%;
}

/*  styling  */
.flex {
  height: 200px;
  border: 1px solid red;
}
.flex span {
  display: inline-block;
  width: calc(100% - 10px);
  border: 1px solid gray;
  padding: 2px;
  margin: 2px;
}
.flex div div:nth-child(1) {
  text-align: right;
}
.flex div div:nth-child(1),
.flex div div:nth-child(3) {
  width: auto;
}
<div class="flex">
  <div>
    <div><span>http(s)</span></div>
    <div><span>url</span></div>
    <div><span>path</span></div>
  </div>
  <div><span>***</span></div>  
  <div><span>authenticate</span></div>
</div>

更新(基于具有类似需求的另一个问题)

人们还可以保留更简单的标记,无需额外的包装,并使用inline-flex结合使flex父级也是一个弹性容器。

堆栈片段

body {
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  margin: 0;
}
.flex {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}
.flex div:nth-child(2),
.flex div:nth-child(4) {
  width: 300px;
}
.flex div:nth-child(1) {
  position: absolute;
  top: 0;
  right: 100%;
}
.flex div:nth-child(3) {
  position: absolute;
  top: 0;
  left: 100%;
}

/*  styling  */
.flex {
  border: 1px solid red;
}
.flex span {
  display: inline-block;
  width: calc(100% - 10px);
  border: 1px solid gray;
  padding: 2px;
  margin: 2px;
  text-align: left;
}
.flex div div:nth-child(1) {
  text-align: right;
}
.flex div div:nth-child(1),
.flex div div:nth-child(3) {
  width: auto;
}
<div class="flex">
  <div><span>http(s)</span></div>
  <div><span>url</span></div>
  <div><span>path</span></div>
  <div><span>***</span></div>  
  <div><span>authenticate</span></div>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在已经居中对齐的元素周围添加元素? 的相关文章

  • Sass 负变量值?

    我有几个 scss 选择器 其中我使用相同数量的正数和负数 如下所示 padding 0 15px 15px margin 0 15px 20px 15px 我更喜欢对所有 15px 量使用一个变量 但这不起作用 pad 15px padd
  • Angular 和 Node JS 中的路由问题 [Angular]

    我有角度js的问题 我创建了 login html 和 home html 成功登录后我想将页面更改为 home html 我的路由不起作用 默认 url 是 localhost angular 我尝试路由 realpath 即 local
  • 智能位置表单字段

    我的用户注册表单上有一个文本字段location 我本质上希望这个字段能够根据 Google 地图 或同等地图 进行验证 只允许有效位置通过 最好采用类似的格式滑铁卢 伦敦 or 伦敦 英国 要求 除了位置名称之外 我还想返回该位置中心的坐
  • 如何使用 HTML CSS JS 创建滑块/切换来更改屏幕上的字体大小 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 is there any way I can make this gt 所以我想制作一个滑块 切换器 用户可以拖动 滑动它来改变不同的
  • POST 表单数据为 application/json

    我正在开发一个 API 它接收 application json post 请求 并触发一些流程 我目前的主要问题是发送一个 application json 帖子 其中包含来自输 入表单的数据 我已经尝试过 jQuery ajax 但由于
  • 等宽字体中的字体大小和字符宽度之间有什么依赖关系?

    等宽字体中的字体大小和字符宽度之间有什么依赖关系 在我的网络应用程序中 我使用 courier new 字体 我想知道 字符串的实际长度 以像素为单位 是多少 如果我知道CSS font size属性 它如何帮助我知道字符串的实际长度 谢谢
  • 将客户端生成的响应作为下载进行流式传输,无需 Service Worker

    假设我有一个在客户端生成的大文件 我希望允许用户将其保存到他们的硬盘驱动器上 通常的方法是创建一个 Blob 然后为其创建一个对象 URL const blob new Blob chunks type application exampl
  • 带有旋转文本的垂直导航

    我正在尝试实现一个包含链接的垂直导航菜单 并且我已使用 css3 将链接文本旋转到 270 度 我旋转了它 因为我希望文本从下到上 问题是当我添加顶部填充时 间距不一致 你可以看到我的代码here http jsbin com ravudu
  • 确定使用 -webkit-line-clamp 表示多行省略号时是否显示省略号

    我们使用多行 CSS 省略号https css tricks com line clampin https css tricks com line clampin 我们想要检测省略号是否正在显示 并根据省略号是否正在显示来决定显示工具提示
  • 带滚动条的 HTML 画布

    我正在宽度不等的画布上绘制图表 每个画布可以有自己的滚动条吗 我尝试将所有画布放在一个 div 中并指定最大宽度 但它不起作用 是否有可能所有画布在页面上的可见宽度均为 500 像素 并且每个画布都有其滚动条来查看画布的整个宽度 谢谢 指定
  • 如何读取 XML 文件并从中获取值以在 PHP 编码的 HTML 页面中显示

    我有一个 XML 文件 其中有一些重复的标签 其中包含不同的值 我需要获取这些值并显示在我的网页中 请帮助我得到这个 如果您使用 PHP5 可以查看 SimpleXML 您可以在这里找到介绍教程 http www w3schools com
  • 有什么方法可以在不重新加载的情况下更改标头 URL? [复制]

    这个问题在这里已经有答案了 可能的重复 修改URL而不重新加载页面 https stackoverflow com questions 824349 modify the url without reloading the page 使用新
  • Angular - Safari 无法正确显示 DOM

    我是 Angular 的新手 使用 Angular 4 我尝试通过在关联的组件类文件中设置属性来更新特定元素 但是 除非我尝试强制重新绘制网页 通过调整窗口大小等 否则页面不会更新 我打开检查器 看到 DOM 已更改 但显示与元素检查器中的
  • 如何在缩放动画中保持原点位于图像中心?

    我有类似的情况fiddle https jsfiddle net ddvn3p1h 3 其中我有一个 CSS3 动画 可以缩放绝对定位在另一个元素中心的元素 但是 当动画发生时 它会偏离中心 如示例中相对于蓝色的红色方块所示 我如何将其居中
  • 动态检测屏幕高度和屏幕宽度,以精简图像的高度和宽度

    我以前可以display a div标签仅在portrait使用下面提到的代码corrl https stackoverflow com users 15388872 corrl in this https stackoverflow co
  • 如何中和 CSS 定义而不覆盖

    有没有一种方法可以中和元素的 CSS 规则而不覆盖所有内容 例如 我正在使用 Twitter Bootstrap 它有许多预定义的 CSS 定义table 在某些地方 我不想要它们 对某些table元素 我想知道我是否可以做这样的事情 ta
  • 无法做到最大宽度

    我有一个页面 内容如下 div testingtestingtestingtestingtestingtestingtestingtestingtesting testingtestingtestingtestingtestingtesti
  • 为 Gmail 设计 HTML 电子邮件

    我正在生成一封使用内部样式表的 html 电子邮件 即 h2 class foo Email content here 在 Gmail 中查看时 内部样式表中的所有样式似乎都被忽略 Gmail 似乎忽略了内联规则以外的所有样式 例如 h2
  • 如何更改 div 悬停时的跨度颜色

    我正在尝试更改 div 悬停时跨度的颜色 如何使红色汉堡按钮 即跨度 在 div 悬停时将颜色更改为黑色 PS 现在它在跨度的悬停上执行此操作 JSFiddle https jsfiddle net bjjbqct8 https jsfid
  • 右列固定的 Div 表

    我最近接手了一个非营利网站作为一个项目 我正在使用一个现有的网站 所以我必须使用很多已经编程的东西 所以我所要做的就是创建设计 I made a diagram of basically what I can t figure out ho

随机推荐

  • 在 keras 中使用哪些合并层?

    Keras 有许多不同的方式来合并输入 例如Add Subtract Multiply concatenate etc 它们是否都具有相同的效果 或者是否存在更适合其中一种的情况 这实际上取决于您想要实现的目标 但让我们简单地看一下不同的合
  • 带有命名文件的 HTTP POST 多部分

    我需要发送一个 多部分 HTTP 请求 其中包含一个名为的文件 这似乎比我想象的更难实现 我试图找出一种用 HTTPoison 来做到这一点的方法 但我无法让它使用 文件 以外的名称 https github com edgurgel ht
  • 连接与相关存在子查询

    在 Derby 和 或 MySQL 中 我想知道以下性能 select c0 documentid from contentblob as c0 where c0 documentid gt and c0 blobid and exists
  • CS1703:在 Xamarin.Droid 中,我应该使用位于 Mono.Framework 还是 System.Runtime 中的 .Net Standard windowsruntime.dll?

    我正在尝试建立这个 Android Xamarin 项目 https github com RobGibbens ResilientServices 并且收到编译时错误 ResilientServices ResilientServices
  • 如何使用 C++ 获取 Linux 中的总 cpu 使用率

    我正在尝试获取 CPU 总使用率 以百分比为单位 首先我应该首先说 top 根本不行 因为CPU转储之间存在延迟 它需要2次转储和几秒钟 这会挂起我的程序 我不想给它自己的线程 接下来我尝试的是 ps 它是即时的 但总是给出非常高的总数 2
  • 错误:属性或索引器不能在此上下文中使用,因为集合访问器无法访问

    我有以下代码 using System using System Collections Generic using System Text using ProjectBase Utils namespace EnterpriseSampl
  • 如何在 Grails 集成测试中使用不同数据发出多个请求

    我正在使用 Spock 插件编写 Grails 2 2 1 集成测试 其中我尝试将两组数据发布到同一控制器端点 when The user adds this product to the inventory def postData pr
  • 在 rvm 中使用多个版本的 ruby​​gems?

    我的计算机上有两个项目 旧的 Rails 2 3 应用程序需要 ruby gems 1 6 并且无法在 ruby gems 1 8 下运行 一个较新的应用程序需要 ruby gems 1 8 并且无法在 ruby gems 1 6 下运行
  • C++ 中的三法则

    我读过 三法则 什么是三法则 https stackoverflow com questions 4172722 what is the rule of three总结如下 如果需要显式声明析构函数 复制构造函数或复制赋值 操作员自己 您可
  • 删除json数组中的数据

    我正在尝试从 json 数组中删除一段数据 例如我有这个数组 var favorites userID 12345678 favorites name My Favorites id 87654321 items productID 112
  • 没有自动隐藏的JavaFX MenuItem [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想要一个 MenuItem 更具体地说是 CheckMenuItem 它不会在单击时自动隐藏 我知道 CustomMenuItem
  • 使用 fs2 将 URL 流式传输到本地文件

    使用 fs2 版本 1 0 4 和 cats effectIO 我可以将 URL 流式传输到本地文件 import concurrent ExecutionContext Implicits global def download spec
  • “编译时”和“运行时”有什么区别?

    我不明白术语 编译时 和 运行时 或 运行时 的含义 我也对 值类型 和 引用类型 的含义以及它们与上述 时代 的关系感到有点困惑 有人可以解释一下这些事情吗 编译时 是指构建代码的时间 编译器将源代码转换为 IL 的时间 运行时 是指执行
  • ‘authority’应该是Uri格式参数名称:authority

    我根据这个例子开发了我的 mvc 应用程序 https github com AzureADSamples WebApp WebAPI OpenIDConnect DotNet https github com AzureADSamples
  • jQuery XML 错误“请求的资源上不存在“Access-Control-Allow-Origin”标头。”

    我正在开发我的个人项目只是为了好玩 我想读取位于以下位置的 xml 文件 http www ecb europa eu stats eurofxref eurofxref daily xml http www ecb europa eu s
  • 在 Java 中预览 HTML [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 您知道哪些库 方法可以在 Swing 中进行一些基本的 HTML 表示 您能评论一下您的经历吗 一个好
  • 如何在 Scaladoc 中全局搜索方法?

    我是否有可能通过 scala 文档在全局范围内搜索类 特征或对象中的方法 示例 我有一个方法名称 但我不知道它属于哪个类 因此我可以在某些 scaladoc 搜索中键入它 它会向我显示包含给定名称的方法的类 PS 我本来会添加标签 scal
  • 插入创建新表

    我有两个大表 想要将所有列名 不是作为视图 合并到一个新表中 I 没有权限右键单击每个表并选择 CREATE TO SCRIPT 所以我想知道是否有一种方法可以将两个表插入到新表中而不指定列数据类型 SELECT top 0 INTO Ne
  • SQL Server 中的四舍五入

    我需要对 SQL Server 中最接近 2 个位置的一些数据类型数字进行四舍五入 Eg Input 123 10000000 Output 123 10 感谢致敬 Ismail 您需要将其转换 Select Convert numeric
  • 如何在已经居中对齐的元素周围添加元素?

    我创建了一个表单 其中一些文本元素垂直对齐 如下所示 它们使用 Flexbox 在页面上水平和垂直居中 my class display flex justify content center align items center flex