2015-12-15 7 views
9

Ich wollte Bild anstelle von normalen Radio-Eingaben verwenden.Entfernen Sie den Randkreis vom Radio-Eingang

enter image description here enter image description here

ich es so gemacht:

input[type="radio"]{ 
    content:url('/images/new-home-page/Checkbox.png'); 
    height:3vh; 
    width:3vh; 
} 
input[type="radio"]:checked{ 
    content:url('/images/new-home-page/checkedCheckbox.png'); 
} 

Leider haben sie Kreise um sie herum. Ich habe versucht, border:none oder text-decoration:none zu verwenden, aber es hilft nicht. Könnte mir bitte jemand damit helfen?

Sie sehen aus wie dies jetzt:

enter image description here

+0

Haben Sie 'Umriss versucht: none'? –

+1

Warum ist Inhalt, nicht Hintergrund? Ich habe es nie zuvor verwendet – yaochiqkl

+0

Aus Interesse, warum verwenden Sie ein Kontrollkästchen Bild mit einem Radio-Button-Schnittstelle? Sollten Sie nicht die Checkbox "

Antwort

6

Ich würde Sie bitten die appearance Eigenschaft von CSS zu verwenden, die für das verantwortlich ist, Komponenten wie diese. Wenn Sie also appearance: none setzen, wird eine Art display: none zum Erscheinungsbild der Komponente, die für Sie benötigt wird. Sie sind gut, dieses bisschen CSS zu verwenden, die Komponente nicht angezeigt zu machen, während das Element im Auge behalten:

-webkit-appearance: none; 
-moz-appearance: none; 
-ms-appearance: none; 
-o-appearance: none; 
appearance: none; 

Snippet

input { 
 
    content: url('http://i.stack.imgur.com/M3EkO.png'); 
 
    height: 16px; 
 
    width: 16px; 
 
    -webkit-appearance: none; 
 
    -moz-appearance: none; 
 
    appearance: none; 
 
} 
 
input:checked { 
 
    content: url('http://i.stack.imgur.com/Ialva.png'); 
 
}
Checkbox: 
 
<input type="checkbox" name="" id="" /> <br /> 
 
Radios: 
 
<input type="radio" name="Hi" id="" /> 
 
<input type="radio" name="Hi" id="" />

Ausgang: http://output.jsbin.com/digebimolu/1

+0

@ divHelper11 Sehen Sie sich das Snippet an, das ich hinzugefügt habe. –

+1

@ divHelper11 Der einzige Nachteil, den diese Lösung hat, wird nicht auf IE 8,9,10,11 funktionieren. Überprüfen Sie meine Antwort, wenn Sie das brauchen. – LGSon

+0

@LGSon Der OP-Code 'content: url()' funktioniert nicht in IE 10 und darunter !!! Überprüfen Sie dies: http://StackOverflow.com/questions/16132460/Css-url-not-recognized-in -internet-explorer-10 –

0

Fügen Sie diese in Ihrem CSS-Datei:

input[type=radio]{ 
    display:none; 
} 
+0

Ernsthaft? 'Anzeige: keine'? –

+0

Vielen Dank für die Antwort. 'display: none' lässt meine Checkboxen verschwinden. Mache ich es falsch? – divHelper11

+0

@ divHelper11 GLP ist falsch. Mach dir keine Sorgen. Eine richtige Lösung für Sie finden. –

1

würde ich eine ganz andere Lösung vorschlagen.

input[type="checkbox"], input[type="radio"] { 
 
    display:none; 
 
} 
 
input[type="checkbox"] + label{ 
 
    padding-left:35px; 
 
} 
 
input[type="checkbox"] + label span { 
 
    display:inline-block; 
 
    width:52px; /* width of the checkbox */ 
 
    height:53px; /* height of the checkbox */ 
 
    margin:-1px 10px 0 -35px; 
 
    vertical-align:middle; 
 
    background:url('http://i.stack.imgur.com/M3EkO.png') left top no-repeat; 
 
    cursor:pointer; 
 
} 
 

 
/* replaces the image if checked.*/ 
 
input[type="checkbox"]:checked + label span { 
 
    background:url('http://i.stack.imgur.com/Ialva.png') left top no-repeat; 
 
}
<input id="cb" value="" type="checkbox"> 
 
<label for="cb"><span></span> Text</label>

Mit dieser Lösung werden Sie nicht in allen Browsern keine Probleme haben. Es wird das Kontrollkästchen selbst ausblenden, aber es funktioniert immer noch, weil Sie auf das Label klicken können, das mit dem Kontrollkästchen verbunden ist. In diesem Etikett gibt es eine Spanne mit Ihrem Hintergrundbild und den Größen davon. So sieht es immer noch wie ein Kontrollkästchen und Ihre verborgene Checkbox wird „geprüft“ oder „ungeprüft“

2

Sie müssen Radio-Buttons verstecken und weitere Elemente wie <span> und <label>

hier hinzufügen wird, wie es funktionieren soll: http://jsfiddle.net/etz9Lfat/

+1

Sie müssen Code zu Ihrer Antwort hinzufügen. Sollte nicht nur zu verknüpfen jsfiddle –

+0

@PraveenKumar es braucht nur eine kleine Erklärung, die Sie auf der Oberseite sehen können – MurDaD

+0

@PraveenKumar Ihre Antwort hat keine Erklärung BTW :) – MurDaD

3

Hier ist eine weitere interessante Lösung, mit Pseudo-Element, wo Sie auch die umliegenden Fokus Outline loswerden.

Das wirklich gut mit diesem ist es funktioniert auf IE 8-11 auch, die leider die bessere Lösung mit appearence nicht tun.

input[type="radio"] { 
 
    display:none; 
 
} 
 
input[type="radio"] + label { 
 
    position: relative; 
 
    padding-left: 54px; 
 
    cursor:pointer; 
 
    font-size: 26px; 
 
} 
 
input[type="radio"] + label:before { 
 
    content: ""; 
 
    position: absolute; 
 
    left: 0; 
 
    top: 50%; 
 
    margin-top: -22px; 
 
    width:46px; 
 
    height:46px; 
 
    background: url('http://i.stack.imgur.com/M3EkO.png'); 
 
    background-size: contain; 
 
} 
 
input[type="radio"]:checked + label:before { 
 
    background: url('http://i.stack.imgur.com/Ialva.png'); 
 
}
<input id="cb" value="1" name="cb" type="radio"> 
 
<label for="cb">Text 1</label> 
 
<input id="cb2" value="2" name="cb" type="radio"> 
 
<label for="cb2">Text 2</label>

Verwandte Themen