<select>
要素のテキストを、サファリの右側または中央に配置してみました。しかし、何もうまくいきませんでした。 text-align:center;
は、サファリを除くすべてのブラウザで機能しました。 direction:rtl;
およびdir="rtl"
は何もしませんでした。 Safariでは、リストは常に左側に配置されます。 -webkit-appearance: none;
も役に立ちません。解決策が必要です。
解決策が見つからなかった場合は、angularjsでこのトリックを使用するか、jsを使用して、選択した値をdiv上のテキストにマッピングします。この解決策は、angular= 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>
電話ギャップでこの解決策を見つけるのに1日かかったので、これが誰かにとって役立つことを願っています。
上記のコメントで述べたように、これは実際にはcssソリューションではないことを知っていますが、jqueryを使用する場合、これは回避策として機能します... chromeは正しく、ブラウザを確認すると、safari用にそれをロードできます。