发表于: 2019-06-27 21:17:12

1 807


今天完成了什么:

任务10的60%把,后面很多样式还是要细调;争取今天搞定;


遇到了什么问题:

遇到的问题自己都搞不清楚了,太多了,每个分辨率下都变形,没时间细写;


1.点击其他的小圆圈后只有一个选中,查了方法lable for的值和input绑定的id是关联的,修改不一样就可以了;

2.其他分辨率下这些样式还是崩,继续不断的修改适应/











收获了什么:

这个任务主要都是在媒体查询调样式真是恶心,补了下相关得知识:

  • width 网页显示区域完全等于设置的宽度
  • height                                                     网页显示区域完全等于设置的高度
  • max-width / max-height                      网页显示区域小于等于设置的宽度
  • min-width / min-width                         网页显示区域大于等于设置的宽度
  • orientation: portrait (竖屏模式)  | landscape (横屏模式)


然后在小圆点上花了很长时间,

对单选按钮自定义样式,我们以前一直用的脚本来实现,不过现在可以使用新的伪类 :checkbox 来实现。

如果直接对单选按钮设置样式,那么这个伪类并不实用,因为没有多少样式能够对单选按钮起作用。不过,倒是可以基于单选按钮的勾选状态借助组合选择符来给其他元素设置样式。

很多时候,无论是为了表单元素统一,还是为了用户体验良好,我们都会选择 label 元素和 input[type="radio"] 一起使用。当<label>元素与单选按钮关联之后,也可以起到触发开关的作用。


思路:

1. 可以为<label>元素添加生成性内容(伪元素),并基于单选按钮的状态来为其设置样式;

2. 然后把真正的单选按钮隐藏起来;

3. 最后把生成内容美化一下。


一段简单的结构代码:


<div class="female">
<input type="radio" id="female" name="sex" />
<label for="female"></label>
</div>
<div class="male">                
<input type="radio" id="male" name="sex" />
<label for="male"></label>
</div>


2. 生成一个伪元素,作为美化版的单选按钮,先给伪元素添加一些样式:

input[type="radio"] + label::before {
content: "\a0"; /*不换行空格*/
display: inline-block;
vertical-align: middle;
font-size: 18px;
width: 1em;
height: 1em;
margin-right: .4em;
border-radius: 50%;
border: 1px solid #01cd78;
text-indent: .15em;
line-height: 1;
}

原来的单选按钮仍然可见,但是我们先给单选按钮的勾选状态添加样式:




3. 给单选按钮的勾选状态添加不同的样式: 


input[type="radio"]:checked + label::before {
background-color: #01cd78;
background-clip: content-box;
padding: .2em;
}



4,然后再把原来的按钮隐藏就可以了,也可以用dispaly:none;


input[type="radio"] {
position: absolute;
clip: rect(0, 0, 0, 0);
}









主要是input配合label元素来使用,input type=”radio“是生成小按钮,然后点击是通过label for=”XXX“里面得值来绑定input里面得id”“,观察代码可以看出来,只有不同的值才会选中相应的;

<div class="gaizibox">
<input type="radio" id="female" name="sex" />
<label for="female">对口箱子</label>
</div>


<div class="gaizibox">
<input type="radio" id="male" name="sex" />
<label for="male">飞机盒</label>
</div>


<div class="gaizibox">
<input type="radio" id="femle" name="sex" />
<label for="femle">天地盖</label>
</div>

</div>


这是菜鸟教程的样式:

<label> 标签为 input 元素定义标注(标记)。

label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。

<label> 标签的 for 属性应当与相关元素的 id 属性相同。

"for" 属性可把 label 绑定到另外一个元素。请把 "for" 属性的值设置为相关元素的 id 属性的值。


for element_id 规定 label 与哪个表单元素绑定。 

form form_id 规定 label 字段所属的一个或多个表单。 





返回列表 返回列表
评论

    分享到