2017-03-01 40 views
1

我正在尋找創建一個文本輸入,其中文本垂直填充整個輸入字段。如下圖所示:在safari中輸入文本高度被破壞

enter image description here

這在Firefox和Chrome都很好。

在Safari中我看到了這個問題:

enter image description here

好像線路高度不爲輸入域正確應用。有趣的是,它適用於佔位符正確。

我的代碼:

HTML:

<input type="text" placeholder="ABCD" value="ABCD"> 

的CSS:

input { 
    padding: 0; 
    margin: 0; 
    border: 0 none; 
    height: 140px; 
    line-height: 140px; 
    width: 600px; 
    font-size: 185px; 
} 

您可以通過以下鏈接進行測試我的代碼: https://jsfiddle.net/0xsven/16z9Lr6t/

這是一個錯誤還是我我錯過了什麼?

編輯:我在Mac OS上使用Safari 10.0.2

回答

1

這是我的解決方案:

<div class="text-box"> 
<input type="text" placeholder="ABCD" value=""> 
</div> 
<div class="text-box"> 
<input type="text" placeholder="ABCD" value="ABCD"> 
</div> 

CSS

.text-box input { 
    padding: 0; 
    margin: 0; 
    border: 0 none; 
    background: none; 
    font-size: 185px; 
    position: relative; 
    top: -47px; 
} 

.text-box { 
    background:#fff; 
    height: 140px; 
    width: 600px; 
    overflow: hidden; 
} 

直播的jsfiddle - https://jsfiddle.net/16z9Lr6t/3/

+0

這有效。謝謝。你會說這是Safari中的錯誤嗎? – Sven

+0

@Sven Safari不理解'行高'。我認爲這是該瀏覽器的一個功能 – grinmax

0

不要使用任何線路電平標籤line-height屬性;僅適用於塊級標籤。

https://developer.mozilla.org/en-US/docs/Web/CSS/line-height

+0

>開非替換內嵌元素,行高指定了用來計算高度線框高度。 – Justinas

+0

@kuba:謝謝你的回答。刪除行高問題依然存在。 (將更新標題。)有什麼機會可以給我一個解決問題的小費? – Sven

+0

@Justinas什麼是「非替換」,甚至意味着什麼?編輯:http://stackoverflow.com/questions/12468176/what-is-a-non-replaced-inline-element 但它是如何幫助我? – Sven

0

line-height指定的文本只界限,在該框中沒有實際的文字位置。

嘗試設置vertical-align: middle(或其他值,現在無法測試)。

+0

沒有幫助。感謝您的嘗試。 – Sven