2017-01-22 37 views
0

我試着按照前面剪切圖像的數學方法,把自己的圖像放在那裏,但它只是顯示爲空白,你能告訴我問題在哪裏嗎?CSS無法正確切分圖像[Sprite Box]?

#paymentForm { 
 
    -webkit-border-radius: 5px; 
 
    -moz-border-radius: 5px; 
 
    border-radius: 5px; 
 
    -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); 
 
    -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); 
 
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); 
 
    background-color: #f9f9f7; 
 
    border: 1px solid #fff; 
 
    
 
    height: auto; 
 
    padding: 13px 20px; 
 
    margin-top:30px; 
 
    width: 287px; 
 
} 
 
#paymentForm span{color: #555555; font-size: 11px} 
 

 
#paymentForm li { 
 
    margin: 8px 0; 
 
} 
 

 
#paymentForm label { 
 
    color: #555; 
 
    display: block; 
 
    font-size: 14px; 
 
    font-weight: 400; 
 
} 
 
#paymentForm input[type=text]{ 
 
    background-color: #fff; 
 
    border: 1px solid #e5e5e5; 
 
    color: #333; 
 
    display: block; 
 
    font-size: 18px; 
 
    height: 32px; 
 
    padding: 0 5px; 
 
    width: 275px; 
 
    -moz-box-sizing: content-box; 
 
    -webkit-box-sizing: content-box; 
 
} 
 
#paymentForm input::-webkit-input-placeholder { 
 
    color: #ddd; 
 
} 
 
#paymentForm input:-moz-placeholder { 
 
    color: #ddd; 
 
    opacity: 1; 
 
} 
 
#paymentForm input::-moz-placeholder { 
 
    color: #ddd; 
 
    opacity: 1; 
 
} 
 
#paymentForm input:-ms-input-placeholder { 
 
    color: #ddd; 
 
} 
 
#paymentForm input:focus { 
 
    outline: 1px solid #3388dd; 
 
} 
 
    #paymentForm #card_number { 
 
     background-image: url(https://i.stack.imgur.com/nGINL.png), url(https://i.stack.imgur.com/nGINL.png); 
 
     background-position: 2px -121px, 260px -61px; 
 
     background-size: 120px 361px, 120px 361px; 
 
     background-repeat: no-repeat; 
 
     padding-left: 54px; 
 
     width: 225px; 
 
     height: 20px; 
 
    } 
 
    #paymentForm #card_number.visa { 
 
     background-position: 2px -163px, 260px -61px 
 
    } 
 
    #paymentForm #card_number.visa_electron { 
 
     background-position: 2px -205px, 260px -61px 
 
    } 
 
    #paymentForm #card_number.mastercard { 
 
     background-position: 2px -247px, 260px -61px 
 
    } 
 
    #paymentForm #card_number.maestro { 
 
     background-position: 2px -289px, 260px -61px 
 
    } 
 
    #paymentForm #card_number.discover { 
 
     background-position: 2px -331px, 260px -61px 
 
    } 
 
    #paymentForm #card_number.valid.visa { 
 
     background-position: 2px -163px, 260px -87px 
 
    } 
 
    #paymentForm #card_number.valid.visa_electron { 
 
     background-position: 2px -205px, 260px -87px 
 
    } 
 
    #paymentForm #card_number.valid.mastercard { 
 
     background-position: 2px -247px, 260px -87px 
 
    } 
 
    #paymentForm #card_number.valid.maestro { 
 
     background-position: 2px -289px, 260px -87px 
 
    } 
 
    #paymentForm #card_number.valid.discover { 
 
     background-position: 2px -331px, 260px -87px 
 
    } 
 

 
    #paymentForm #card_number.amex { 
 
     background-position: 2px -373px, 260px -61px; 
 
    } 
 
    #paymentForm #card_number.valid.amex { 
 
     background-position: 2px -373px, 260px -87px; 
 
    }
<div id="paymentForm"> 
 
    
 
    <input type="text" name="card_number" id="card_number" class="valid visa" maxlength="20" placeholder="1234 5678 9012 3456"> 
 
</div>

我決定增加我自己的這些線路在這裏

#paymentForm #card_number.amex { 
    background-position: 2px -373px, 260px -61px; 
} 
#paymentForm #card_number.valid.amex { 
    background-position: 2px -373px, 260px -87px; 
} 

我不明白這些值

padding-left: 54px; 
width: 225px 

,我必須改變這些值太?

下面是我添加了最後一張名片「美國運通卡」的圖像,但它顯示爲空白圖像。 Here is the image

+0

你剛纔打錯'背景position'值。嘗試一個較小的值。並儘量避免精靈 - 主要是避免自建精靈,沒有任何自動構建過程。 –

回答

1

如果你看看輸入的方式呈現,所討論的兩個值都在做以下幾點:

padding-left: 54px;確保文本輸入不重疊的信用卡類型的背景圖像。

隨着填充:

enter image description here

沒有填充:

enter image description here

width: 225px;因爲驗證複選標記的圖像在特定的值被設置爲阱專門設置。這不是必需的,可以做出響應,但是在這種情況下,所有設置都是精確的像素值。

美國運通的正確定位是:

#paymentForm #card_number.amex { 
    background-position: 2px -338px, 260px -61px; 
} 
#paymentForm #card_number.valid.amex { 
    background-position: 2px -338px, 260px -87px; 
} 

一個調試的最簡單的方法和調整這些就是打開開發人員工具,將光標放在這些像素值之一,並在按updown箭頭鍵盤。你會從字面上看到背景圖像的移動並能夠微調值。

http://g.recordit.co/8mYkxkPlhl.gif

#paymentForm #card_number { 
 
     background-image: url(https://i.stack.imgur.com/nGINL.png), url(https://i.stack.imgur.com/nGINL.png); 
 
     background-position: 2px -121px, 260px -61px; 
 
     background-size: 120px 361px, 120px 361px; 
 
     background-repeat: no-repeat; 
 
     padding-left: 54px; 
 
     width: 225px; 
 
     height: 20px; 
 
    } 
 
    #paymentForm #card_number.visa { 
 
     background-position: 2px -163px, 260px -61px 
 
    } 
 
    #paymentForm #card_number.visa_electron { 
 
     background-position: 2px -205px, 260px -61px 
 
    } 
 
    #paymentForm #card_number.mastercard { 
 
     background-position: 2px -247px, 260px -61px 
 
    } 
 
    #paymentForm #card_number.maestro { 
 
     background-position: 2px -289px, 260px -61px 
 
    } 
 
    #paymentForm #card_number.discover { 
 
     background-position: 2px -331px, 260px -61px 
 
    } 
 
    #paymentForm #card_number.valid.visa { 
 
     background-position: 2px -163px, 260px -87px 
 
    } 
 
    #paymentForm #card_number.valid.visa_electron { 
 
     background-position: 2px -205px, 260px -87px 
 
    } 
 
    #paymentForm #card_number.valid.mastercard { 
 
     background-position: 2px -247px, 260px -87px 
 
    } 
 
    #paymentForm #card_number.valid.maestro { 
 
     background-position: 2px -289px, 260px -87px 
 
    } 
 
    #paymentForm #card_number.valid.discover { 
 
     background-position: 2px -331px, 260px -87px 
 
    } 
 

 
    #paymentForm #card_number.amex { 
 
     background-position: 2px -338px, 260px -61px; 
 
    } 
 
    #paymentForm #card_number.valid.amex { 
 
     background-position: 2px -338px, 260px -87px; 
 
    }
<div id="paymentForm"> 
 
    
 
    <input type="number" id="card_number" class="valid amex" /> 
 
    
 
</div>

+0

我理解,但爲什麼差距如此之大,我通過從前面的值中減去1的值來計算數學,而且我總是得到42,就像'-331px - -289px'等一樣。總是42 ..所以我加了42到最後一個發現應該超過-331,但只有-338?奇怪的數學變化?我在想也許我忘了在圖像高度變大的地方或某個地方 – SSpoke

+1

圖像也縮放;在這一點上它並不是真正的像素值。特別注意背景大小的規則,它會改變背景的大小,並影響你的所有數學。 –

+0

謝謝我不認爲其他值總是縮放數學'42'抵消,但我現在明白它的不同。我將接受這個答案感謝與控制檯模式的技巧。 – SSpoke