2017-10-10 2 views
0

Ist es möglich, einen runden Schatten (ein sauberer Kreis mit dem Spread-Wert auf Null gesetzt) ​​unter einem quadratischen Element? Zum Beispiel ein DIV ohne abgerundete Ränder.Zeichnen eines runden Schattens auf einem quadratischen Element mit CSS

Ich habe folgendes Element, das ich nicht weiter Markup hinzufügen:

<div class="square"></div> 

Darüber hinaus habe ich nicht :before:after und Pseudoelemente verwenden kann, wie sie bereits gestylt ist. Deshalb versuche ich den Box-Schatten anzupassen.

verbinde ich ein Beispiel dessen, was Ich mag würde zu erreichen, nur optisch besser zu erklären:

https://jsfiddle.net/landzup/L275p85L/

Ich benutzte das :before Pseudoelement nur das Ergebnis zu zeigen.

+0

Ich habe eine harte Zeit abbildet dies ... es wäre wie ein Quadrat/Rechteck in einem Kreis eingeschlossen aussehen? Was ist mit zwei divs, eine äußere mit transparentem Hintergrund? – JCOC611

+0

können Sie ein Bild von dem, was Sie brauchen, teilen? es ist ein wenig verwirrend –

Antwort

1

Es gibt ein paar Möglichkeiten, um darüber zu gehen. Ich würde einfach das quadratische Div in ein größeres Container-Div setzen, dann style es nach Belieben. Ich habe ein paar Beispiele für dich aufgenommen.

Ich hoffe, das hilft! - James.

.square { 
 
    width: 20px; 
 
    height: 20px; 
 
    display: block; 
 
    position: relative; 
 
    background: #fff; 
 
    opacity: 1; 
 
    margin: 5px 0 0 5px; 
 
} 
 

 
.circle,.circle-with-spread { 
 
    display: block; 
 
    background-color: #000; 
 
    opacity: 0.3; 
 
    width: 30px; 
 
    height: 30px; 
 
    border-radius: 15px; 
 
    position: absolute; 
 
} 
 

 
.circle-with-spread { 
 
    box-shadow: 0 0 5px 5px rgba(0,0,0,1); 
 
}
<!-- Example Circle Shadow --> 
 
<div class="circle"> 
 
    <div class="square"></div> 
 
</div> 
 
<!-- Spacing makes it look nice --> 
 
<br /> 
 
<br /> 
 
<br /> 
 
<!-- Second Example --> 
 
<div class="circle-with-spread"> 
 
    <div class="square"></div> 
 
</div>

+0

Lieber James, danke für deine Antwort. Entschuldigung, ich denke, ich bin nicht klar genug gewesen: Ich kann weder weiteres Markup über das DIV hinaus hinzufügen, noch Pseudoelemente verwenden. Der einzige Raum, den ich habe, ist das Erstellen des Schattens durch seine CSS-Eigenschaften; Ich untersuchte die Box-Shadow-Eigenschaften, aber ich erreichte keine Lösung, also wollte ich sehen, ob mir etwas fehlte, wenn ein Hase aus dem Zylinder gezogen wurde ... –

+0

Ich habe die Frage bearbeitet, um das Problem besser zu erklären . –

+1

Ich verstehe jetzt. Soweit ich sehen kann, gibt es keine Möglichkeit, das zu erreichen, was Sie wollen, ohne Pseudo-Elemente, Markup oder JavaScript zu verwenden. Es gibt ein paar * nahe * Alternativen, aber sie sind nicht perfekt. Hinzufügen von 'box-shadow: 0 0 30px 0 # 000;' gibt Ihnen den kreisförmigen Schatten, aber es hat sich ausgebreitet, oder das Hinzufügen von 'box-shadow: 0 0 0 30px # 000;' gibt Ihnen den Schatten ohne Ausbreitung, aber es ist quadratisch . - Entschuldigung, ich konnte dir nicht weiter helfen. –

Verwandte Themen