safari浏览器中的输入字段:边框+大写文本

时间:2014-03-20 14:21:34

标签: html css safari

正如标题所示,以下代码的输出在 safari浏览器上没有显示:

  

1)输入类型搜索的边框未显示

     

2)text-transform:大写不起作用。

其余浏览器显示确切的输出。请参阅下面的图片。

Fiddle

HTML:

<div class="searchLob">
    <input type="search" class="searchInput" placeholder="Search the website"></input>
    <button onclick="Submit();" class="searchInputBtn">Search</button>
</div>

CSS:

.searchLob{
    position: relative;
    display: inline-block;
    }

.searchInput{
    position: relative;
    border: 2px solid #d2d4d8;
    height: 44px;
    padding: 0 10px;
    background-color: #fff;
    width: 200px;
    margin: 2px 0 0 2px;
    float: left;
    text-transform: uppercase;
    }

.searchInputBtn{
    position: relative;
    float: left;
    border: medium none;
    color: #fff;
    cursor: pointer;
    font: 14px 'arial';
    height: 44px;
    margin-left: -4px;
    margin-top: 2px;
    text-decoration: none;
    text-transform: uppercase;
    width: 70px;
    background-color: #6692a7;
    }

.searchInputBtn:hover{
    background-color:#547e92;
    }

textarea:focus, input:focus, select:focus{
    border-color: #cccfd0;
    box-shadow: 0 1px 1px rgba(204, 207, 208, 0.075) inset, 0 0 8px rgba(204, 207, 208, 1);
    outline: 0 none;
    }

我也尝试过以下方法:

CSS:

@media screen and (-webkit-min-device-pixel-ratio:0) { 
    /* Safari and Chrome */
    .myClass {
     color:red;
    }

    /* Safari only override */
    ::i-block-chrome,.myClass {
     color:blue;
    }
}

使它适用于safari,但是没有做任何事情。

我该如何解决:

Other Browsers Vs Safari Browser

[我正在使用Safari浏览器版本:5.1.7(内部版本:7534.57.2)]

2 个答案:

答案 0 :(得分:9)

如果删除所有CSS,并检查Safari中的元素,您会注意到user agent stylesheet中添加了很多CSS - 这是浏览器的默认样式表和因浏览器而异。

例如,这是添加到输入中的一些默认样式:

input[type="search"] {
    -webkit-appearance: searchfield;
    box-sizing: border-box;
}
user agent stylesheet
input, input[type="password"], input[type="search"], isindex {
    -webkit-appearance: textfield;
    padding: 1px;
    background-color: white;
    border: 2px inset;
    -webkit-rtl-ordering: logical;
    -webkit-user-select: text;
    cursor: auto;
}
user agent stylesheet
:focus {
    outline: 5px auto -webkit-focus-ring-color;
}

正如博文中提到的那样 - Resetting HTML5 Search Input in Webkit

  • 归功于 Priyank Sharma

重置Safari默认样式的方法是添加以下CSS:

/* Reset HTML5 Search Input in Webkit */
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-decoration,
input[type=search]::-webkit-search-results-button,
input[type=search]::-webkit-search-results-decoration {
  -webkit-appearance:none;
}
input[type=search] {
  -webkit-appearance:textfield;
  -webkit-box-sizing:content-box;
}

因此,如果您现在查看小提琴 - http://jsfiddle.net/Hg2A6/8/,您会注意到它获得了正确的样式

答案 1 :(得分:0)

您可以使用占位符Attribute Selector

::input-placeholder

input::-webkit-input-placeholder {
    color: rgba(0,5,143,.5);
    text-transform: uppercase;
}
input::-moz-placeholder {
    color: rgba(0,5,143,.5);
    text-transform: uppercase;
}
input:-moz-placeholder {   /* Older versions of Firefox */
    color: rgba(0,5,143,.5);
    text-transform: uppercase;
}
input:-ms-input-placeholder { 
    color: rgba(0,5,143,.5);
    text-transform: uppercase;
}

<input type="text" placeholder="I'm placeholder text!">
  

注意:并非所有CSS属性都受支持   :: input-placeholder规则。事实上,只有极少数是最有用的   是:

     

IE8及更早版本不支持占位符文本   polyfil javascript解决方案可以支持这些浏览器。

color
font-size
font-style
font-weight
letter-spacing
line-height
padding
text-align
text-decoration

检查我在google搜索时找到的演示链接.. http://codepen.io/Treehouse/pen/fIesK

信用转到Guil Hernandez