在网页开发中遇到这样一个问题,在使用select的时候,想让里面的文字水平居中。首先想到的是text-align:center;但是发现在Chrome浏览器下不兼容,需要使用到text-align-last:center;就可以了。代码如下:

select{
width: 400px;
text-align:center;
text-align-last:center;/*兼容chrome*/
}
</style>
<select>
<option value="1">No-1</option>
<option value="2">No-2-我的内容很多哦。哈哈</option>
</select>

设计网站大全https://www.wode007.com/favorites/sjdh

但是上面代码在Safari上没起作用;如果不考虑Safari的兼容上面代码就可以了。如果要兼容,我们可以在用一个div包裹select,在该div内添加一个span元素,用js去绑定span里的值和select的值,让span元素居中,隐藏掉select就可以了。代码如下:

css:

<style>
#box{
width: 400px;
border: 1px solid #ddd;
text-align: center;
position: relative;
}
select{
position: absolute;
left: 0px;
top: 0px;
width: 100%;
height: 100%;
opacity: 0;
}
</style>

html:

<div id="box">
<span id="show">No-1</span>
<select>
<option value="1">No-1</option>
<option value="2">No-2-我的内容很多哦。哈哈</option>
</select>
</div>

js:

<script>
window.onload=function(){
var show=document.getElementById('show');
var sel=document.getElementsByTagName('select')[0];
sel.onchange=function(){
var index=sel.selectedIndex; //序号,取当前选中选项的序号
show.innerText=sel.options[index].text;
}
}
</script>

这样就可以简单模拟实现select居中的效果了,但是上面代码并不完善,例如没有下拉框的箭头,这个大家可以自己添加上去。在js上面如果使用了框架,如vue,angularjs等,就可以很简单的实现数据的双向绑定,实现就更简洁了。

延伸:如何让option的文字居中呢?

无论怎么尝试,都没发现能完美解决option中的值居中的方法。大部分需要这样的需求的同学,可能也是加空格来实现的,或者不使用select,利用div,js等完全模拟select下拉框效果。当然说实话:select的option居中效果很难看,你可以想象option中的值长度不一,居中还不如靠左对齐呐。

最新文章

  1. 异步HTTPHandler的实现
  2. VS2013安装
  3. openerp child_of操作符深度解析
  4. nba技能表
  5. iOS 深浅拷贝
  6. 解决IntelliJ Idea中文乱码问题
  7. tomcat作为windows服务启动失败解决方法
  8. JS和正则表达式验证手机号码、邮箱等
  9. j2ee课程设计—基于activiti的请休假系统
  10. sessionid固定与session混淆的一些随想
  11. Centos7 下的SVN安装与配置
  12. 无法将类型“System.Collections.Generic.List&lt;anonymous type:string ClassID,string ClsssName&gt;”隐式转换为“System.Collections.Generic.List&lt;Ecology.Model.EnergyFlowGraph&gt;”
  13. Debugging Java Native Memory Leaks
  14. 张高兴的 Windows 10 IoT 开发笔记:使用 MAX7219 驱动数码管
  15. 自动化测试基础篇--Selenium框架设计(POM)
  16. 【BZOJ5333】荣誉称号(动态规划)
  17. [洛谷P3293] [SCOI2016]美味
  18. zookeeper编程入门系列之zookeeper实现分布式进程监控和分布式共享锁(图文详解)
  19. 使用PHP模拟post提交数据
  20. GridView内按钮Click获取记录主键值 在GridView控件中,每行记录内会放置一个铵钮,当用

热门文章

  1. java实现输入信用卡号码
  2. java实现还款计算
  3. Java实现 泊松分酒
  4. 呀,葵花宝典![IT项目经理成长晋升记2]
  5. 3、react-props/state
  6. Python--函数&amp;过程
  7. sql 获取当前时间的前一天,不加时分秒
  8. netty实现消息中心(二)基于netty搭建一个聊天室
  9. 第m大的身份证号码(局部排序代全局、结构体排序)
  10. leetcode27之移除元素