Html 如何在div中居中放置按钮?

Html 如何在div中居中放置按钮?,html,css,centering,Html,Css,Centering,我有一个div的宽度是100% 我想把一个按钮放在它的中心,我该怎么做 你好 更新答案 更新,因为我注意到这是一个积极的答案,但Flexbox现在将是正确的方法 垂直和水平对齐 #wrapper { display: flex; align-items: center; justify-content: center; } 仅水平(只要主柔性轴是水平的,这是默认值) 使用固定宽度且无flexbox的原始答案 如果原始海报想要垂直和中心对齐,那么按钮的固定宽度和高度非常容易,请

我有一个div的宽度是100%

我想把一个按钮放在它的中心,我该怎么做


你好

更新答案

更新,因为我注意到这是一个积极的答案,但Flexbox现在将是正确的方法

垂直和水平对齐

#wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
}
仅水平(只要主柔性轴是水平的,这是默认值)

使用固定宽度且无flexbox的原始答案

如果原始海报想要垂直和中心对齐,那么按钮的固定宽度和高度非常容易,请尝试以下方法

CSS

button{
    height:20px; 
    width:100px; 
    margin: -20px -50px; 
    position:relative;
    top:50%; 
    left:50%;
}
对于水平对齐,请使用

button{
    margin: 0 auto;
}

button {
  width: 100px; // whatever your button's width
  margin: 0 auto; // auto left/right margins
  display: block;
}

更新:如果OP正在寻找水平和垂直中心,将针对固定的宽度/高度元素进行此操作。

根据提供的有限细节,我将假设最简单的情况,并说您可以使用
文本对齐:中心


页边距:0自动;仅适用于水平居中。 对于两种方式的居中,使用jquery可以实现类似的功能:

var cenBtn = function() {
   var W = $(window).width();
   var H = $(window).height();
   var BtnW = insert button width;
   var BtnH = insert button height;
   var LeftOff = (W / 2) - (BtnW / 2);
   var TopOff = (H / 2) - (BtnH /2);
       $("#buttonID").css({left: LeftOff, top: TopOff});
};

$(window).bind("load, resize", cenBtn);

更新。。。五年后,可以在父DIV元素上使用flexbox轻松地将按钮水平和垂直居中

包括所有浏览器前缀,以获得最佳支持

div {
  display: -webkit-box;
  display: -moz-box;
  display: -ms-flexbox;
  display: -webkit-flex;
  display: flex;
  -webkit-box-align : center;
  -moz-box-align    : center;
  -ms-flex-align    : center;
  -webkit-align-items : center;
  align-items : center ;
  justify-content : center;
  -webkit-justify-content : center;
  -webkit-box-pack : center;
  -moz-box-pack : center;
  -ms-flex-pack : center;
}
#容器{
位置:相对位置;
利润率:20px;
背景:红色;
高度:300px;
宽度:400px;
}
#货柜组{
显示:-网络工具包盒;
显示器:-moz盒;
显示:-ms flexbox;
显示:-webkit flex;
显示器:flex;
-webkit框对齐:居中;
-moz框对齐:居中;
-ms-flex-align:居中;
-webkit对齐项目:居中;
对齐项目:居中;
证明内容:中心;
-webkit盒包:中心;
-莫兹盒包装:中心;
-ms-flex-pack:center;
-webkit内容:中心;
证明内容:中心;
}

你好
假设div是#div,button是#button:

#div {
    display: table-cell;
    width: 100%;
    height: 100%;
    text-align: center;
    vertical-align: center;
}

#button {}

然后像往常一样将按钮嵌套到div中。

遇到了这个问题,我认为我也应该保留我使用的解决方案,它利用
行高度和
文本对齐:居中来进行垂直和水平居中:

您只需制作:


最简单的方法是以“div”的形式输入,给它一个“margin:0 auto”,但如果你想让它居中,你需要给它一个宽度

  Div{
   Margin: 0 auto ;
   Width: 100px ;
  }
使用flexbox

.Center {
  display: flex;
  align-items: center;
  justify-content: center;
}
然后将类添加到按钮中

<button class="Center">Demo</button> 
Demo
要使
内垂直和水平居中,其宽度是动态计算的,就像在您的案例中一样,请执行以下操作:

  • 设置
    文本对齐:居中到包装
    :每当您调整
    (或者更确切地说是窗口)的大小时,这将使按钮居中
  • 对于垂直对齐,需要设置
    margin:valuepx用于按钮。这是关于如何计算
    valuepx
    的规则:

    valuepx=(wrappingDIVheight-按钮高度)/2


  • 这里有一个响应CSS选项,用于垂直和水平居中按钮,而不考虑父元素的大小(为了清晰和分离,使用数据属性挂钩):

    HTML


    小提琴:

    在div中居中调整按钮的响应方式:

    <div 
        style="display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 2rem;">
        <button type="button" style="height: 10%; width: 20%;">hello</button>
    </div>
    
    
    你好
    
    适用于大多数情况的超级简单答案是只需将边距设置为
    0自动
    ,并将显示设置为
    。你可以看到我如何在我的演示集中我的按钮


    你应该简单一点,来吧:

    首先,您有文本或按钮的初始位置:

    <div style="background-color:green; height:200px; width:400px; margin:0 0 0 35%;">
       <h2> Simple Text </h2>
          <div>
               <button> Simple Button </button>
          </div>
    </div>
    
    
    简单文本
    简单按钮
    

    通过将此css代码行添加到h2标记或保存按钮标记的div标记中

    样式:“文本对齐:居中;”

    最终结果代码为:

    <div style="background-color:green; height:200px; width:400px; margin:0 0 0 35%;">
    <h2 style="text-align:center;"> Simple Text </h2> <!-- <<--- here the changes -->
    
          <div style="text-align:center">        <!-- <<--- here the changes -->
                    <button> Simple Button </button>
          </div>
    </div>
    
    
    简单文本
    简单按钮
    

    div{
    文本对齐:居中;
    }
    钮扣{
    宽度:50%;
    保证金:1rem自动;
    }
    
    你好
    
    您对按钮使用的代码是什么?我怀疑他想要垂直和水平居中。到目前为止,没有一个解决方案能够做到这一点。CSS不太擅长垂直居中=(.让我说flexbox使得这个答案在2014年毫无用处。是的,宝贝!可能是-1的副本这太糟糕了。基本上,你将宽度设置为100%,然后将边距设置为-50。但是它会导致其他问题,比如按钮高于包含的元素,无法很好地调整大小。嘿,感谢你至少解释了你的向下vote@Imray,也请注意,我说的是固定宽度和高度,而不是可变的。因此,调整大小不是一个因素。“基本上”我将宽度设置为100px,而不是100%,边距设置为-50px,即一半。这是一种非常标准的居中方法。不过,我期待你的回答:)你的welcs(很抱歉这么苛刻,很高兴你有幽默感)我的意思是100px。我不知道你写的是“固定”,但我仍然认为这个答案在大多数情况下都不好。你可能还需要“display:block;@SoluableNonagon就是这样!”display:block用“margin:0 auto”来实现jQuery?说真的吗?@PraneshRavi-2011年CSS中没有很多选项可以垂直居中,所以是的,如果您不知道元素的确切高度和宽度,并且可以减去边距,javascript并不少见。您可以始终使用flex来垂直和水平居中元素。@PraneshRavi-是的,您可以,flexbox是这个问题的一个很好的答案,我要补充一点,但在2011年没有flexbox。@JGallardo-我想你错过了其他答案的部分
    [data-container="button"] {
      position: absolute;
      top: 50%;
      text-align: center;
      width: 100%;
    }
    
    <div 
        style="display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 2rem;">
        <button type="button" style="height: 10%; width: 20%;">hello</button>
    </div>
    
    <div style="background-color:green; height:200px; width:400px; margin:0 0 0 35%;">
       <h2> Simple Text </h2>
          <div>
               <button> Simple Button </button>
          </div>
    </div>
    
    <div style="background-color:green; height:200px; width:400px; margin:0 0 0 35%;">
    <h2 style="text-align:center;"> Simple Text </h2> <!-- <<--- here the changes -->
    
          <div style="text-align:center">        <!-- <<--- here the changes -->
                    <button> Simple Button </button>
          </div>
    </div>