我试过这个:http://jsfiddle.net/ilyaD/KGcC3/

HTML:

<select name="state" class="ddList">
    <option value="">(please select a state)</option>
    <option class="lt" value="--">none</option>
    <option class="lt" value="AL">Alabama</option>
    <option class="lt" value="AK">Alaska</option>
    <option class="lt" value="AZ">Arizona</option>
    <option class="lt" value="AR">Arkansas</option>
    <option class="lt" value="CA">California</option>
    <option class="lt" value="CO">Colorado</option>
</select>

CSS:

select { width: 400px; text-align: center; }
select .lt { text-align: center; }

如你所见,它不起作用。是否有css唯一的方法来居中选择框中的文本?


当前回答

你必须把CSS规则放到选择类中。

使用CSS文本缩进

例子

<select class="day"> /* option 1 option 2 option 3 option 4 option 5 here */ </select>

CSS代码

select { text-indent: 5px; }

其他回答

如果选项是静态的,则可以监听选择框上的更改事件,并为每个单独的项添加填充

$('#id').change(function() {
    var select = $('#id');
    var val = $(this).val();

    switch(val) {
        case 'ValOne':
            select.css('padding-left', '30px');
            break;
        case 'ValTwoLonger':
            select.css('padding-left', '20px');
             break;
        default:
            return;
    }
});

简单的方法: 使用padding-left

select{
   padding-left:2rem
}

这是对齐右。试一试:

select{
    text-align-last:right;
    padding-right: 29px;
    direction: rtl;
}

浏览器对文本对齐-最后属性的支持可以在这里找到:https://www.w3schools.com/cssref/css3_pr_text-align-last.asp 看起来只有Safari还不支持它。

有一个Chrome的部分解决方案:

select { width: 400px; text-align-last:center; }

它会将所选选项居中,但不会将下拉列表中的选项居中。

如果你没有找到任何解决方案,你可以在angularjs上使用这个技巧,或者使用js将选中的值与div上的文本映射,这个解决方案在angular上完全符合css,但需要在select和div之间进行映射:

var myApp = angular.module('myApp', []); myApp.controller('selectCtrl', ['$scope', function($scope) { $scope.value = ''; } ]); .ghostSelect { opacity: 0.1; /* Should be 0 to avoid the select visibility but not visibility:hidden*/ display: block; width: 200px; position: absolute; } .select { border: 1px solid black; height: 20px; width: 200px; text-align: center; border-radius: 5px; display: block; } <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Example - example-guide-concepts-1-production</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> </head> <body ng-app="myApp"> <div ng-app ng-controller="selectCtrl"> <div class=select> <select ng-model="value" class="ghostSelect"> <option value="Option 1">Option 1</option> <option value="Option 2">Option 2</option> <option value="Option 3">Option 3</option> </select> <div>{{value}} </div> </div> </div> </body>

希望这可以对某人有用,因为我花了一天时间在phonegap上找到这个解决方案。