如果有意义的话,我正在尝试制作一个具有“内部边框”的响应式按钮,请参阅附图,了解我正在谈论的内容。
我的一些按钮比其他按钮宽一些,因为按钮文本较长,这是响应部分的来源。我通过将我的按钮放入容器div来创建此效果,这是代码:
HTML
<div class="ttw_button_container">
<a class="ttw_button">START THE JOURNEY</a>
</div>
CSS
.ttw_button_container {
background: #27d9b4;
width: 330px;
height: 50px;
margin: 0 auto;
}
a.ttw_button{
background: #27d9b4;
color: {{ settings.btn_text_color }};
border: 1px solid white;
padding: 6px 52px;
margin: 4px 0 0 0;
cursor: pointer;
font-weight: bold;
font-size: 19px;
text-transform: {{ settings.button_font_style }};
display: inline-block;
-webkit-transition: all 200ms ease 0s;
-moz-transition: all 200ms ease 0s;
-ms-transition: all 200ms ease 0s;
-o-transition: all 200ms ease 0s;
transition: all 200ms ease 0s;
-webkit-appearance: none;
-webkit-font-smoothing: antialiased;
font-smoothing: antialiased;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
有没有办法让容器div调整大小以适应按钮?目前我手动编辑容器的宽度以适合每个按钮,但理想情况下这样做是自动完成的。有没有办法只使用CSS来实现这一点,还是我们需要将javascript引入混合?
谢谢!
答案 0 :(得分:2)
这是一个非常简单的使用box-shadow的解决方案,需要更少的标记和更少的CSS:http://jsfiddle.net/Jdzpv/3/。
HTML:
<a class="ttw_button">START THE JOURNEY</a>
CSS:
.ttw_button {
display: inline-block;
padding: 6px 25px;
font-weight: bold;
font-size: 19px;
background: #27d9b4;
box-shadow: 0 0 0 5px #27d9b4,
inset 0 0 0 1px #fff;
}
答案 1 :(得分:1)
当然有,这里有一个JS小提琴,它将接受并扩展到那里的任何数量的文本。
不要在容器上使用宽度,只需使用填充:
.ttw_button_container {
background: #27d9b4;
padding: 4px 10px;
margin: 4px 0;
display: inline-block;
}
a.ttw_button{
background: #27d9b4;
color: {{ settings.btn_text_color }};
border: 1px solid white;
padding: 6px 52px;
font-weight: bold;
font-size: 19px;
display: inline-block;
}
如果你想要丢失所有的div,你可以做一些评论建议的东西,只使用box-shadow:
a.ttw_button{
background: #27d9b4;
color: {{ settings.btn_text_color }};
border: 1px solid white;
padding: 6px 52px;
font-weight: bold;
font-size: 19px;
display: inline-block;
-moz-box-shadow: 0px 0px 0px 6px #27d9b4
-webkit-box-shadow: 0px 0px 0px 6px #27d9b4
box-shadow: 0px 0px 0px 6px #27d9b4
}
这是一个JSfiddle,显示:http://jsfiddle.net/T9Wk7/1/
答案 2 :(得分:0)
而且,这是一个适用于不支持box-shadow
的旧浏览器的解决方案。这个使用outline
和border
声明:http://jsfiddle.net/Jdzpv/5/。
HTML:
<a class="ttw_button">START THE JOURNEY</a>
CSS:
.ttw_button {
display: inline-block;
padding: 6px 25px;
font-weight: bold;
font-size: 19px;
background: #27d9b4;
outline: 5px solid #27d9b4;
border: 1px solid #fff;
}
答案 3 :(得分:-1)
试试这个:
.ttw_button_container {
background: #27d9b4;
width: 330px;
height: 50px;
margin: 0 auto;
padding:6px;
}
a.ttw_button{
background: #27d9b4;
color: {{ settings.btn_text_color }};
border: 1px solid white;
padding: 6px;
line-height:35px;
cursor: pointer;
font-weight: bold;
font-size: 19px;
text-transform: {{ settings.button_font_style }};
display: inline-block;
-webkit-transition: all 200ms ease 0s;
-moz-transition: all 200ms ease 0s;
-ms-transition: all 200ms ease 0s;
-o-transition: all 200ms ease 0s;
transition: all 200ms ease 0s;
-webkit-appearance: none;
-webkit-font-smoothing: antialiased;
font-smoothing: antialiased;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
width:100%;
height:100%;
text-align:center;
}