CSS中的文本居中或左边距和右边距不居中按钮

Posted

技术标签:

【中文标题】CSS中的文本居中或左边距和右边距不居中按钮【英文标题】:Text align center or margin left and margin right not centering button in CSS 【发布时间】:2021-04-27 07:23:51 【问题描述】:

我在我的 html 中添加了一个按钮,并希望将其居中。我尝试了标题中的两种方法,但它们都不起作用。我是 HTML 和 CSS 的新手。我使用 CSS 将其居中,但如果有使用 HTML 的方法,我可以接受。

div 
  text-align: center;


body 
  text-align: center;


input[type=text] 
  width: 110%;
  padding: 1%;
  background-color: rgb(255, 255, 255);
  border-radius: 10px;


h1 
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;


div 
  height: 10em;
  position: relative


html 
  margin: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  right: 50%;
  margin-right: -50%;
  transform: translate(-50%, -50%)


body 
  background: linear-gradient(-20deg, #e73c7e, #23a6d5, #23d5ab);
  background-size: 1000000% 1000000%;


button 
  margin-left: auto;
  margin-right: auto;
<div id="typing-area">
  <input type="text">
  <button>Enter</button>
  <h1>
    bocho is cool
  </h1>
</div>

文本框居中,但按钮不居中。

谢谢! 伊凡

【问题讨论】:

您有一些非常混乱的 HTML,这可能是导致问题的原因。尝试通过验证器 validator.w3.org/#validate_by_input 运行您的 HTML 详细说明@RobertAKARobin 的评论:在代码合并之前,2 个正文开始标签紧随其后。 html结束标记后的脚本标记。 【参考方案1】:

因为您将输入的大小设置为 110% 并将正常页面大小保留为 100%,所以它会推出输入。

input[type=text] 
  width: 100%;
  padding: 1%;
  background-color: rgb(255, 255, 255);
  border-radius: 10px;            


margin-left: auto;
margin-right: auto;

你可以用这个代替上面的

margin:0 auto

【讨论】:

【参考方案2】:

您可以在父项上使用 flex 属性来对齐项目。

您不需要在按钮元素上添加任何 CSS。 这是更好的新方法。

div#typing-area 
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;


input[type=text] 
  width: 110%;
  padding: 1%;
  background-color: rgb(255, 255, 255);
  border-radius: 10px;


h1 
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;


div 
  height: 10em;
  position: relative


html 
  margin: 0;
  position: absolute;
  top: 50%;
  left: 50%;
  right: 50%;
  margin-right: -50%;
  transform: translate(-50%, -50%)


body 
  background: linear-gradient(-20deg, #e73c7e, #23a6d5, #23d5ab);
  background-size: 1000000% 1000000%;
<div id="typing-area">
  <input type="text">
  <button>Enter</button>
  <h1>
    bocho is cool
  </h1>
</div>

【讨论】:

【参考方案3】:

而不是将对齐项应用到正文作为中心 试试这个。不需要单一的 CSS 样式

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <link rel="stylesheet"  href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css" integrity="sha512-+4zCK9k+qNFUR5X+cKL9EIR+ZOhtIloNl9GIKS57V1MyNsYpYcUrUeQc9vNfzsWfV28IaLL3i96P9sdNyeRssA==" crossorigin="anonymous" />
  <link rel="preconnect" href="https://fonts.gstatic.com" />
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css "rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous" />
</head>
<body>

    <div class="container row text-center">
        <div class="col-12">
            <input type="text" class="w-50 ">
            <button class="btn btn-primary ">Enter</button>
        </div>
        <div class="col-12">
            <h1>bocho is cool</h1>
        </div>
    </div>
   <script  src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/js/bootstrap.bundle.min.js"  integrity="sha384-ygbV9kiqUc6oa4msXn9868pTtWMgiQaeYH7/t7LECLbyPA2x65Kgf80OJFdroafW"  crossorigin="anonymous"></script>
   <script src="script/script.js"></script>
</body>
</html>

它在所有 3 个视图中都能完美响应

【讨论】:

以上是关于CSS中的文本居中或左边距和右边距不居中按钮的主要内容,如果未能解决你的问题,请参考以下文章

使用居中的 div 作为边距和过度使用 div

Wordpress 菜单居中,如何更改?

为啥我的电子邮件 HTML 顶部的左边距和右边距没有变化?

怎么用css设置div的左边和右边有阴影

为啥HTML中table内部的内外边距不可用?

如何让DIV里面的DIV水平垂直居中