发表于: 2020-05-01 22:21:09

2 1415


今天完成的事情:

完成任务10并提交。粗略浏览一边任务11.

学习需要用到的样式:

关于input:

单选按钮的type就是radio,在name相同的情况下,只会有一个被选择。

Radio 对象代表 HTML 表单中的单选按钮。在 HTML 表单中 <input type="radio"> 每出现一次,一个 Radio 对象就会被创建。单选按钮是表示一组互斥选项按钮中的一个。当一个按钮被选中,之前选中的按钮就变为非选中的。

<label> 标签

配合input标签的时候,在label标签设定文字,也可以触发input标签。

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

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

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

type属性用来规定input元素的类型,

       [注意]如果input元素没有设置type属性,或者设置的值在浏览器中不支持,那么输入类型会变成type="text"

name属性用于规定input元素的名称,用于对提交到服务器后的表单数据进行标识,或者在客户端通过javascript引用表单数据

       [注意]只有设置了name属性的表单元素才能在提交表单时传递它们的值

checked属性规定在页面加载时应该被预先选定的input元素,也可以在页面加载后,通过javascript进行设置

  [注意]checked属性只能与type="radio"或type="checkbox"的input元素配合使用

checked="checked" 表示默认选中项设置。
在坑乎看到一些师兄的回答贴上的代码,恰好有取消radio原本样式的样式,于是学习了一下

input[type=radio]{

    /*去除浏览器默认样式*/

    -webkit-appearance: none;

    -moz-appearance: none;

    appearance: none;

我所搜索到的这个属性,有很大的兼容问题。

所有主流浏览器都不支持 appearance 属性。

Firefox 支持替代的 -moz-appearance 属性。

Safari 和 Chrome 支持替代的 -webkit-appearance 属性。

虽然后面在设置select上还是用了(真香)。


搜索到的常规修改radio写法:

1

思路:隐藏原本的样式,opacity:0,设置透明,

利用<label>标签与对应的<input>关联、

使用position(定位)让用户看到的是<label>标签的样式

点击<label>时会选择到对应的<input>

使用<input>:checked伪类选择器来改变选中<label>的样式.

(有点像任务7的音频隐藏,覆盖到播放图标上)

2

思路:直接赋予input样式display:none(隐藏),

设置lable的class属性inline-block(为了元素同行)再使用lable标签包裹着input(赋予隐藏)和span(inline-block和表现样式),input样式使用checked关联span样式, after写出点击后效果即可。

                    <label class="main-label">
                        <input class="main-input-radio" type="radio" name="row-one">
                        <span class="main-span-roundness"></span>天地盖
                    </label>

.main-label {
  margin: 14.5px 20px;
  display: inline-block;
  font-size: 1.8rem;
  color: #666666;
}

.main-input-radio {
  display: none
}

.main-span-roundness {
  background-color: #fff;
  border: 1px solid rgba(0000.15);
  border-radius: 50%;
  display: inline-block;
  height: 17px;
  margin-right: 10px;
  margin-top: -3px;
  vertical-align: middle;
  width: 17px;
  line-height: 0;
}

.main-input-radio:checked+.main-span-roundness::after {
  background-color: white;
  border-radius: 50%;
  content: "";
  display: inline-block;
  height: 15px;
  border: 1px solid;
  border-width: 6px;
  border-style: solid;
  border-color: #1d7ad9;
  width: 15px;
}





明天计划的事情:

向任务11进发。



遇到的问题和收获:

在搜索关于css修改input=radio样式的时候很是头疼,很多搜出来的代码一时看不明白。

看了一些回答,感觉和之前的任务设置音频的任务差不多,难以改变样式的情况下,只能隐藏原本的样式,写一个或者用图片覆盖原位,使用position或者z-index提高层级。

学习radio的过程意外的长,看了不少搜索的答案进行demo尝试,很多是无效的。

下拉框使用的select,去除三角形添加自己想要的图标花时也有点长,对于伪类的理解不够深,在设置background路径的时候,设置错了导致调试很久没有显示出来。在这个过程中,对于伪类的使用比较熟悉了些。

这个任务相对任务8,9而言没有那么复杂,需要用到的新知识也不多。


返回列表 返回列表
评论

    分享到