折腾:
【记录】优化绘本查询系统的UI
期间,需要去给输入框内部的右边加上x,可以点击 用于清除已经输入的内容
给输入框的内部的右边 加上一个叉叉,用于点击后,清除已输入的内容
去找了半天:
貌似只有这种是最接近的:
但不是按钮,所以去加上,看看是否可以改为按钮
bootstrap input box clear button
现在试了很多种:
html
<!-- <span id="inputClear" class="glyphicon glyphicon-remove-circle"></span> --> <!-- <input id="inputQuery" type="search" class="form-control" placeholder="请输入要查询的绘本名称" value=""> --> <!-- <input id="inputQuery" type="search" class="clear" placeholder="请输入要查询的英文绘本名称" value=""> --> <span class="input-group-btn"> <input id="inputQuery" type="search" class="form-control" placeholder="请输入要查询的绘本名称" value=""> <span id="inputClear" class="glyphicon glyphicon-remove-circle"></span> </span> <!-- <span class="input-group-btn"> <button id="submitQuery" type="submit" class="btn btn-primary" type="button">查询</button> </span> -->
css
/* #inputClear { width: 10px; position: absolute; right: 5px; top: 0; bottom: 0; height: 14px; margin: auto; font-size: 14px; cursor: pointer; color: #ccc; } */ /* input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: searchfield-cancel-button; } */ /* .clear::-ms-clear { display: none; } */
都不行。
还是自己去实现吧。
【总结】
暂时没有实现要的效果,而只是加了另外按钮去实现:
代码:
<input id="inputQuery" type="search" class="form-control" placeholder="请输入要查询的英文绘本名称" value=""> <span class="input-group-btn"> <!-- <span class="input-group-append"> --> <button id="clearInput" type="clear" class="btn btn-secondary" type="button">清除</button> <!-- <button id="clearInput" type="clear" class="btn btn-outline-secondary" type="button">清除</button> --> <button id="submitQuery" type="submit" class="btn btn-primary" type="button">查询</button> </span>
效果:
后来换成:
<span class="input-group-btn"> <!-- <span class="input-group-append"> --> <!-- <button id="clearInput" type="clear" class="btn btn-secondary" type="button">清除</button> --> <!-- <button id="clearInput" type="button" class="close" aria-label="Close">X</button> --> <button id="clearInput" type="clear" class="btn btn-outline-secondary" type="button">X</button> <!-- <button id="submitQuery" type="submit" class="btn btn-primary" type="button">查询</button> --> <button id="submitQuery" type="submit" class="btn" type="button">查询</button> </span>
效果:
不能接受,再去尝试弄成x放输入框里面
bootstrap input clear button
效果不错
去试试
结果不显示
然后去看看在线页面为何有效果,发现是
glyphicon glyphicon-remove
是能显示的:
-》我这是bootstrap 4,没有Validation states
搜:
参考
得到如下效果:
估计是
material-icons
导致的
抽空改为自己的试试
然后调试发现:
也是字体:
.material-icons
的问题:
所以去搜:
bootstrap 4 Material Icons
或者换用别的font也可以?
* Iconic
* Octicons
发现这里有:
所以问题就转化为:
【已解决】Bootstrap 4中如何引用其他字体比如Font Awesome
【总结】
最后通过:
html
<!-- <link href="http://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" type="text/css" rel="stylesheet"> --> <!-- <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous"> --> <!-- <link rel="stylesheet" href="css/font-awesome-4.7.0/css/font-awesome.css"> --> <link rel="stylesheet" href="css/font-awesome-4.7.0/css/font-awesome.min.css"> <div class="input-group input_query_group"> <div class="form-group position-relative col-10"> <input id="inputQuery" type="search" class="form-control" placeholder="请输入要查询的英文绘本名称" value=""> <span class="form-clear d-none"><i class="fa fa-times"></i></span> </div> <button id="submitQuery" type="submit" class="btn col-2" type="button">查询</button> </div>
加上css:
.input_query_group { padding-left: 39px; padding-right: 39px; /* height: 28px; */ } #inputQuery{ /* width: 80%; */ font-size: 13px; /* height: 28px; */ } #submitQuery{ color: #333333; font-size: 15px; /* width: 50px; */ height: 38px; background-color: var(--main_color); } .mr-2, .mx-2 { margin-right: 0.75rem !important; } /* .exampleContainer { padding: 50px; } */ .form-group.position-relative input { padding-right: 32px; } .form-clear { height: 22px; width: 22px; /* right: 0; */ right: 22px; align-items: center; background: #cecece; border-radius: 50%; bottom: 8px; color: rgba(0, 0, 0, .20); cursor: pointer; display: flex; justify-content: center; position: absolute; z-index: 10; } /* .form-text+.form-clear { bottom: calc(1rem + 18px); } .form-clear .material-icons { font-size: 16px; font-weight: 500; } */
效果是:
输入内容后,可以输出x:
对应的是font awesome的图标:
【后记1】
记过上线后,发现:
移动端,iOS或Android都显示不出来x:
iPhone6:
Android 锥子M1L:
Mac 中的Safari 模拟iOS也不行:
但是
Mac Chrome 模拟iPhone
却可以显示出x:
注意到:
布局也乱了:输入框左边的边距都没了
-》发现相当于:
.input_query_group {
没了:
padding-left: 39px;
不过过会调试发现,mac中Safari模拟iOS是可以显示x的:
难道是缓存问题?
那就多等一段时间再去试试
然后发现不是:
只是微信浏览器的原因
Android中换成QQ浏览器,就可以显示了:
所以现在结论是:
PC端或手机端,清除按钮都是可以正常显示的
-》但是微信端,不论是iOS还是Android,都会不能正常显示,且输入框的布局都有问题:边距都不正常。真很无语。