如何将按钮对齐到屏幕中间?

2024-03-08

我正在尝试在屏幕中间放置 2 个按钮。然而,这些按钮与我现在拥有的代码重叠。实际上我并没有使用那么多 CSS,所以这可能是一个新手问题。

这是我的html:

.wrapper {
  text-align: center;
}

.button {
  position: absolute;
  top: 50%;
}

.button1 {
  background-color: Transparent;
  background-repeat:no-repeat;
  padding:20px;
  color: white; 
  border: 3px solid #fff;
}

.button1:hover{
  border: 3px solid #000;
}
<div id="particles-js"></div>
<div class="wrapper">
  <button class="button button1">button</button>
  <button class="button button1">button2</button>
</div>

我不知道如何将这些按钮对齐到中间并在按钮之间留出一点空间。如果有人可以帮助我,我将非常感激!


Using text-align: center将嵌套元素水平居中

您可以通过声明来实现这一点text-align: center在包含父元素上(.wrapper)并声明display: inline-block在嵌套的子元素上。

position: absolute必须删除,因为我们想要keep自然界中的元素文件流- 为了使此方法起作用,元素必须是static或定位relative.

Note:对于水平对齐,使用text-align: center要按预期工作,应满足一些要求:

  1. 包含父元素必须是block元素(例如:display: block)
  2. 您需要居中的嵌套元素应该是内联块元素(例如:display: inline-block)
  3. No float规则应该在您所在的嵌套元素上声明 打算水平对齐,float规则将抵消任何努力 以这种方式对齐元素
* {
  box-sizing: border-box; /* always useful when working with border or padding properties, or any other property that can effect the box-model */
}

.wrapper {
  text-align: center;
  background: gray; /* so we can actually see what's happening */
  padding: 20px; /* Give us some breathing room */
}

.button {
  display: inline-block; /* naturally creates "whitespace" between inline elements */
}

.button1 {
  background-color: Transparent;
  background-repeat:no-repeat;
  padding:20px;
  color: white; 
  border: 3px solid #fff;
  /* non-essential augmentations */
  transition: .7s; /* smooth out the state change on pseudo-state :hover */
  min-width: 100px;
}

.button1.with-margin {
  margin: auto 10px; /* for additional spacing between inline elements*/
}

.button1:hover{
  border: 3px solid #000;
}
<div class="wrapper">
  <button class="button button1">button</button>
  <button class="button button1">button2</button>
</div>
<br>
<div class="wrapper">
  <button class="button button1 with-margin">button</button>
  <button class="button button1 with-margin">button2</button>
</div>

或者...你可以只需使用 Flex...

Using flex-box将嵌套元素水平居中

通过声明display: flex在包含父元素上(.wrapper), then justify-content: center指定水平对齐方式,您将获得预期的结果。flex-box利用浏览器的内置功能来完成所有“繁重的工作”和精确对齐的计算 - 顺便说一句,这也使其成为流行的响应式解决方案。

.wrapper {
  text-align: center;
  background: gray; /* so we can actually see what's happening */
  padding: 20px; /* Give us some breathing room */
  /* Additional */
  display: flex;
  justify-content: center;
}
* {
  box-sizing: border-box; /* always useful when working with border or padding properties, or any other property that can effect the box-model */
}

.wrapper {
  text-align: center;
  background: gray; /* so we can actually see what's happening */
  padding: 20px; /* Give us some breathing room */
  /* Additional */
  display: flex;
  justify-content: center;
}

.button {
  display: inline-block; /* naturally creates "whitespace" between inline elements */
}

.button1 {
  background-color: Transparent;
  background-repeat:no-repeat;
  padding:20px;
  color: white; 
  border: 3px solid #fff;
  /* non-essential augmentations */
  transition: .7s; /* smooth out the state change on pseudo-state :hover */
  min-width: 100px;
  margin: auto 10px; /* additional spacing between nested elements */
}

.button1:hover{
  border: 3px solid #000;
}
<div class="wrapper">
  <button class="button button1">button</button>
  <button class="button button1">button2</button>
</div>

小心! flex-box对旧版浏览器的支持很差或有限,因此如果这将成为您所关心的问题,那么最好不要在生产中使用它。

IE 不支持
即 10,11 -部分支持
查看更多: https://caniuse.com/#feat=flexbox https://caniuse.com/#feat=flexbox

Edit

垂直和水平对齐使用flex-box & position: absolute

.wrapper {
  text-align: center;
  background: gray; /* so we can actually see what's happening */
  padding: 20px; /* Give us some breathing room */
  /* Additional */
  display: flex;
  justify-content: center;
  /* Further Additions */
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
* {
  box-sizing: border-box; /* always useful when working with border or padding properties, or any other property that can effect the box-model */
}

.wrapper {
  text-align: center;
  background: gray; /* so we can actually see what's happening */
  padding: 20px; /* Give us some breathing room */
  /* Additional */
  display: flex;
  justify-content: center;
  /* Further Additions */
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}

.button {
  display: inline-block; /* naturally creates "whitespace" between inline elements */
}

.button1 {
  background-color: Transparent;
  background-repeat:no-repeat;
  padding:20px;
  color: white; 
  border: 3px solid #fff;
  /* non-essential augmentations */
  transition: .7s; /* smooth out the state change on pseudo-state :hover */
  min-width: 100px;
  margin: auto 10px; /* additional spacing between nested elements */
}

.button1:hover{
  border: 3px solid #000;
}
<div class="wrapper">
  <button class="button button1">button</button>
  <button class="button button1">button2</button>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将按钮对齐到屏幕中间? 的相关文章

随机推荐

  • 将 Android 库导出为 AAR 文件

    我在我的项目中创建了一个库模块 现在 我想与其他人分享 发布这个库 目前共享 aar 文件就可以了 我浏览了这篇文章 https developer android com studio projects android library h
  • Maven:生命周期阶段与目标之间的关系

    我很难在某些 Maven 概念中看到 树木中的森林 我知道 Maven 预先配置了一系列所谓的 构建生命周期阶段 开头为validate and test并结束于deploy 我从 Ant 转向 Maven 在 Ant 中 您将主要构建阶段
  • mysql_insert_id 或类似的东西返回最后一个 mysql UUID()

    如何返回最后生成的 UUID 主键 有类似 mysql insert id 的东西吗 Table uuidtable primary key uuid uuid id u index integer 多个 id u 与主键 uuid 匹配
  • 如何使 rake 测试不使用默认的 minitest?

    我正在跟随制作你自己的宝石 http guides rubygems org make your own gem来自 RubyGems 的指南 执行rake test指令失败如下 gt rake test rbenv versions 2
  • 使用 Backbone 将文件上传到 tastypie?

    检查了一些其他问题 我认为我的 tastypie 资源应该如下所示 class MultipartResource object def deserialize self request data format None if not fo
  • 聚类——稀疏向量和稠密向量

    对于聚类 Mahout 输入需要采用向量形式 有两种类型的向量实现 一种是稀疏向量 另一种是密集向量 两者有什么区别 稀疏和密集的使用场景 从概念上讲 稀疏向量中的大多数值都为零 而在稠密向量中则不是 对于稠密矩阵和稀疏矩阵也是如此 条款s
  • emacs 窗口中的文本居中

    在一个孤独的 emacs 框架内 我频繁地在编辑 70 列文本文件 LaTeX 和 120 列程序 h cpp 文件 之间切换 我想继续仅使用一个 emacs 框架 而不调整其大小或创建其他框架 问题就在这里 我的窗口宽度大约适合编辑 12
  • 使用未选中的复选框,如何过滤掉始终隐藏的 NSFW 标记的 div,但选中打开时,以遵循可见性规则?

    这个问题基于这个问题 答案 同时使用复选框和下拉菜单进行准确过滤 https stackoverflow com q 68317206 4383420 Hi 注意 简化的问题和代码位于代码笔或下面的代码片段中 这里我只是解释上下文 Imag
  • 将 FutureBuilder 与 setState 一起使用

    如何使用FutureBuilder with setState适当地 例如 当我创建一个有状态小部件时 它开始加载数据 FutureBuilder 然后我应该用新数据更新列表 所以我使用 setState 但它开始无限循环 因为我再次重建小
  • 如何使用 bnd/maven-bundle-plugin 将资源文件从 jar 依赖项包含到 osgi 包中?

    我在用着maven bundle plugin bnd有效地 从源中包含资源文件很简单 例如 资源文件 src main resources some xml 移至下面target目录 target classes some xml 在构建
  • 在 Backbone.js 中实现 Backbone.Subset.js 以从父集合中过滤模型

    In 这个 stackoverflow 帖子 https stackoverflow com questions 6865174 backbone js correct way of filter collection data and d
  • 如何获取 ntile() 的间隔

    我试图弄清楚是否有一种方法可以获取用于何时的间隔ntile 用来 我有一个样本 我想将其用作获取较大样本的百分位值的基础 并且我希望找到一种方法来获取使用时的间隔值ntile 对此的任何启发将不胜感激 我真的很想把这个作为评论 但我仍然无法
  • 手动删除 anaconda python 中 pkgs 文件夹中的所有文件是否安全?

    我运行这个命令来释放 anaconda 上的磁盘空间 conda clean all 但是 仍然有一些大文件残留在pkgsanaconda python 中的文件夹 手动删除其中的所有文件是否安全pkgs文件夹 有破坏我的 anaconda
  • Invoke-Restmethod:如何获取返回码?

    有没有办法在调用时将返回码存储在某处Invoke RestMethod在 PowerShell 中 我的代码如下所示 url http www dictionaryapi com api v1 references collegiate x
  • 如何从字符串中获取size_t?

    我需要从用户输入中获取数组大小 对我来说 将输入存储为很自然size t 但是正在寻找合适的strto 功能我找不到 我刚用过strtoull since unsigned long long保证至少是 64 位 而且我无论如何都使用 C9
  • 可变值和不可变值重定义有什么区别?

    我读到 F 中的值是不可变的 然而 我也遇到了重新定义价值定义的概念 它掩盖了以前的定义 这与可变值有何不同 我问这不仅是一个理论构造 而且还询问是否有关于何时使用可变值以及何时重新定义表达式的建议 或者如果有人可以指出后者不是惯用的 f
  • 如何让 GNU Unifont 或 Free Mono 在 gvim windows 上运行?

    我正在尝试在 Windows 7 上的 gvim 中获得对符文字符的支持 我的 Fonts 目录中安装了 Free Mono 和 GNU Unifont 字体 都支持此范围 但它们没有出现在字体菜单中 gvim 给出了我收到以下行的无效字体
  • ASP.NET MVC 4 引用单父实体的多个外键

    我正在尝试开发一个 ASP NET MVC 4 应用程序 可以根据玩家的进攻 防守和助攻技能对他们进行评级 进攻 防守和助攻是球员表上的外键 引用相同的查找表 评分 我有以下父实体 public class Rating public in
  • 为什么 tzset() 在 Mac OS X 上 fork 后速度变慢了?

    Calling tzset fork之后显得很慢 如果我第一次打电话 我只会看到缓慢的情况tzset 在 fork 之前在父进程中 我的TZ环境变量未设置 我dtruss我的测试程序显示子进程读取 etc localtime对于每一个tzs
  • 如何将按钮对齐到屏幕中间?

    我正在尝试在屏幕中间放置 2 个按钮 然而 这些按钮与我现在拥有的代码重叠 实际上我并没有使用那么多 CSS 所以这可能是一个新手问题 这是我的html wrapper text align center button position a