html - 请问css 中一个元素能做出这种选中效果么?
大家讲道理
大家讲道理 2017-04-17 11:42:30
0
3
508

如果做不出,也可以两个元素,最好不要绝对定位

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

Antworte allen(3)
阿神

首先是不太可能只用一個元素,因為想要實現自定義的 radio 或是 checkbox 時,都得靠 labelfor 來實現,就是隱藏實際 input ,然後自定義 label 的樣式來實現,所以至少得兩個。

實現

<input name="radios" class="circle-radio" type="radio" id="radio1"/><label for="radio1"></label>

<input name="radios" class="circle-radio" type="radio" id="radio2"/><label for="radio2"></label>
.circle-radio {
  visibility: hidden;
}

.circle-radio + label {
  display: block;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  border: 2px solid #00AAFF;
}

.circle-radio:checked + label {
  display: block;
  background: #00AAFF;
  box-shadow: inset 0px 0px 0px 6px white;
}
迷茫

如果只是单纯的表示这样一个图形的话,单个p是可以实现的,即通过背景的径向渐变

<p id="a"></p>
<style>
    #a{
        width:100px;
        height:100px;
        border-radius:50%;
        background: -webkit-radial-gradient( #0af 0%,#0af 25%,transparent 26%,transparent 60%, #0af 61%, #0af 100%);
    }
</style>

上述代码是运行结果请看
http://jsbin.com/vunoraxoko/e...

当然,如果你是想表示radio等单选或复选的话
单个元素恐怕不能满足你的要求

对于这一点,你可以参考楼上 @Tomoe 的回答

黄舟
    <p class="outer">
        <p class="inner"></p>
    </p>
.outer {
    width: 100px;
    height: 100px;
    margin: 0 auto;
    border: 3px solid blue;
    border-radius: 50px;
}
.inner {
    display: none;
    width: 50%;
    height: 50%;
    margin: 0 auto;
    margin-top: 25%;
    border-radius: 25px;
    background-color: blue;
}
p.outer:hover p.inner{
    display: block;
}

使用 border-radius 和 css 伪类选择器 :hover
预览

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage