我基本上有一个按钮,我需要对齐中心。在该按钮旁边,我需要显示一些内容(例如复选标记)。我一直试图这样做,但遇到了一个问题: 1)如果我使用显示:内联我不能居中 2)如果我使用display:block我不能在它旁边添加另一个元素
我一直试图用display来解决这个问题:inline-block无济于事
JFiddle:https://jsfiddle.net/2x5a5zdx/
代码:
<input type="button" class='btn btn-md btn-primary' value="Submit Responses" id="submitBttn"/>
<span class="green-success" id="surveySuccess" >✔</span>
<span class="red-danger" id="surveyFailure" >✖</span>
然后是css
#submitBttn {
margin:auto;
display:inline-block;
}
#surveySuccess, #surveyFailure {
}
谢谢
答案 0 :(得分:3)
正如您所指出的,margin: auto
不会使inline
元素居中。
由于inline
/ inline-block
级别元素尊重text-align
property,您只需将text-align: center
添加到父元素即可。这样,子元素将居中,因为它们默认为inline
。
.parent-element {
text-align: center;
}
.parent-element > span,
.parent-element > input {
display: inline-block; /* Added for example purposes */
vertical-align: middle;
}
或者,in supported browsers,您也可以utilize flexbox layouts并将父元素的display
设置为flex
并添加justify-content: center
以进行水平居中:
.parent-element {
display: flex;
justify-content: center;
}
答案 1 :(得分:1)
要在页面上水平居中显示按钮和图标,请将它们包装在div中并将其text-align属性设置为居中。
<div id="wrapper">
<input type="button" class='btn btn-md btn-primary' value="Submit Responses" id="submitBttn"/>
<span class="green-success" id="surveySuccess" >✔</span>
<span class="red-danger" id="surveyFailure" >✖</span>
</div>
#wrapper {
text-align: center;
}
答案 2 :(得分:1)
<强>基本强>
如果您想将按钮和支票集中在一起,整体而言,居中很简单。您只需要将text-align: center
添加到父元素(您可能需要介绍)。
.container {
text-align: center;
}
<div class="container">
<input type="button" class='btn btn-md btn-primary' value="Submit Responses" id="submitBttn" />
<span class="green-success" id="surveySuccess">✔</span>
<span class="red-danger" id="surveyFailure">✖ This content <i>does</i> affect centering.</span>
</div>
或者,如果您希望按钮本身居中,无论标签如何,您都可以使用position: absolute
将标签拉出流程。如果您想一次只显示一个标签,这将特别有用。如果你同时显示它们,它们将在彼此之上,所以你必须解决它。
.container {
text-align: center;
}
#surveySuccess, #surveyFailure {
position: absolute;
margin-left: 5px;
}
#surveyFailure {
display: none;
}
<div class="container">
<input type="button" class='btn btn-md btn-primary' value="Submit Responses" id="submitBttn" />
<span class="green-success" id="surveySuccess">✔ Button is not moved</span>
<span class="red-danger" id="surveyFailure">✖ Button is not moved</span>
</div>
就个人而言,我想主要通过CSS显示这样的标签,所以这段代码会再次略有改动,在跨度中添加反馈文本(如果你愿意),但添加支票或交叉(和颜色)在CSS中通过设置span的类。只需添加课程success
或failure
,您就可以更改现在单个'surveyResult'范围的符号和颜色:
.container {
text-align: center;
}
#surveyResult {
position: absolute;
margin-left: 5px;
}
#surveyResult.success {
color: green;
}
#surveyResult.success::before {
/* \2714 is the CSS (hexadecimal) notation of ✔ */
content: '\2714 ';
}
#surveyResult.failure {
color: red;
}
#surveyResult.failure::before {
content: '\2716 ';
}
<div class="container">
<input type="button" class='btn btn-md btn-primary' value="Submit Responses" id="submitBttn" />
<span class="success" id="surveyResult">You did great!</span>
</div>