在网页开发中遇到这样一个问题,在使用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中的值长度不一,居中还不如靠左对齐呐。

html5中二进制对象Blob的使用——Blob与ArrayBuffer、TypeArray和String的相互转换的更多相关文章

  1. 理解HTML5中Range对象

    1.理解Range对象    重新来学习下HTML5中的Range对象和Selection对象,最近在维护富文本编辑器,感觉这方面的知识点很有用,所以趁着周末多学习下~  什么是Range对象? 在H ...

  2. HTML5中的对象的拖拽

    拖拽: draggable="true"页面上就能实现拖拽事件: ondragstart 拖拽开始事件 ondrag 拖拽中 ondragend 拖拽结束事件 投放区事件: ond ...

  3. 【Java】链表中存储对象的问题

    更新: 在一次搜索“变量声明在循环体内还是循环体外”问题时,碰见了一个这样的代码,与本文类似,代码如下: Document [] old ......//这是数据源 EntityDocument[] ...

  4. PostgreSQL的.NET驱动程序Npgsql中参数对象的一个Bug

    最近将公司的项目从SqlServer移植到PostgreSQL数据库上来,在调用数据库的存储过程(自定义函数)的时候,发现一个奇怪的问题,老是报函数无法找到. 先看一个PgSQL存储过程: CREAT ...

  5. HTML5中的二进制大对象Blob(转)

    HTML5中的Blob对象和MYSQL中的BLOB类型在概念上是有点区别的.MYSQL中的BLOB类型就只是个二进制数据容器.而HTML5中的Blob对象除了存放二进制数据外还可以设置这个数据的MIN ...

  6. HTML5中的Blob对象的使用

    HTML5中的Blob对象和MYSQL中的BLOB类型在概念上是有点区别的.MYSQL中的BLOB类型就只是个二进制数据容器.而HTML5中的Blob对象除了存放二进制数据外还可以设置这个数据的MIN ...

  7. BLOB二进制对象(blob.c/h)

    BLOB二进制对象(blob.c/h) 数据结构 struct blob_attr { uint32_t id_len; /** 高1位为extend标志,高7位存储id, * 低24位存储data的 ...

  8. Spring 让 LOB 数据操作变得简单易行,LOB 代表大对象数据,包括 BLOB 和 CLOB 两种类型

    转自:https://www.ibm.com/developerworks/cn/java/j-lo-spring-lob/index.html 概述 LOB 代表大对象数据,包括 BLOB 和 CL ...

  9. 处理大数据对象clob数据和blob数据

    直接上下代码: package com.learn.jdbc.chap06; import java.io.File; import java.io.FileInputStream; import j ...

随机推荐

  1. Java实现 LeetCode 212 单词搜索 II

    public class Find2 { public int[] dx={1,-1,0,0}; public int[] dy={0,0,1,-1}; class Trie{ Trie[] trie ...

  2. Java实现选择问题

    选择问题是求一个n个数列表的第k个最小元素的问题. 那么如何寻找n个元素中第k个最小元素呢? package com.liuzhen.chapter4; public class SelectProb ...

  3. Java实现 蓝桥杯 历届试题 连号区间数

    问题描述 小明这些天一直在思考这样一个奇怪而有趣的问题: 在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是: 如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增 ...

  4. Linux 独立服务管理

    RPM包安装在默认位置 /etc/init.d/:启动脚本位置 /etc/sysconfig/:初始化环境配置文件位置 /etc/:配置文件位置 /etc/xinetd.conf/:xinetd配置文 ...

  5. PAT A除以B

    本题要求计算A/B,其中A 是不超过 1000 位的正整数,B 是 1 位正整数.你需要输出商数Q 和余数R,使得 A=B*Q+R 成立. 输入格式: 输入在一行中依次给出A 和B,中间以 1 空格分 ...

  6. Python面试常用的高级用法,怎么动态创建类?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第16篇文章,今天我们来聊聊Python当中的元类. 元类是Python当中的高级用法,如果你之前从来没见过这个术语 ...

  7. 二叉树路径搜索---DFS 路径和

    vector<vector<int>> pathSum(TreeNode* root,int sum){//DFS遍历获取适合路径,当递归到叶子结点且sum为0,表示该路径合适 ...

  8. 除了FastJson,你也应该了解一下Jackson(二)

    概览 上一篇文章介绍了Jackson中的映射器ObjectMapper,以及如何使用它来实现Json与Java对象之间的序列化和反序列化,最后介绍了Jackson中一些序列化/反序列化的高级特性.而本 ...

  9. 局域网访问电脑中VMware虚拟机

    场景 你在自己的台式机或笔记本中使用VMware Workstation搭建了一个虚拟机系统,如Debian.Fedora等Linux系统.现在你希望使用局域网中另一台电脑访问你电脑上的虚拟机系统,怎 ...

  10. 【转载】自动化魔方求解器的Bug——选择合适的色彩空间

    目录 1. 准备工作-- 2. RGB颜色空间 3. LAB色彩空间 4. YCrCb色彩空间 5. HSV色彩空间 Color spaces in OpenCV (C++ / Python) 几天前 ...