2016-04-28 8 views
0

Ich habe eine Spannungsklasse in meinem Projekt, die nur die Eigenschaften ihrer Eltern haben sollte. Also habe ich alles gesetzt: unscharf. Aber dieses Element sollte auch editierbar sein. Und es sieht so aus: Unset entfernt auch die Fähigkeit, den Inhalt des Elements zu bearbeiten.alles: unscharf entfernt contenteditable

CSS:

.mytext{ 
 
    all:unset; 
 
}
<h1><span class="mytext" contenteditable="true">Editable Text</span></h1>

So ist es eine Möglichkeit, alle zu verwenden: Frisch- und contenteditable = "true"?

EDIT: Und ja, ich muss es auf diese Weise verwenden. Ich kann das contentediable Attribut dem Eltern nicht hinzufügen. Der Grund ist, dass der Inhalt von h1 (in diesem Fall) dynamisch hinzugefügt wird. Das span-Element enthält einige zusätzliche Datenattribute, die ich brauche. Ich kann diese Attribute nicht zum übergeordneten Element hinzufügen, da ich nicht weiß, welches Element das übergeordnete Element sein wird.

+0

Ok fand ich eine Lösung für weiß, aber ich würde noch gerne wissen, ob es ein einfacher Weg ist. Für den Moment nehme ich die Datenattribute aus dem span-Element mit jquery und füge es dem übergeordneten Element hinzu, dann nehme ich den Inhalt aus dem span-Element und ersetze den übergeordneten Inhalt damit. – Verdemis

Antwort

1

Wie wäre es mit einem :not() Selektor?

.mytext:not([contenteditable="true"]) { 
 
    all: unset; 
 
}
<h1><span class="mytext" contenteditable="true">Editable Text</span></h1>

+0

Ehrfürchtig. Ich hätte das selbst wissen müssen, aber es ist mir nicht eingefallen. Vielen Dank! – Verdemis

+0

Ok, es sieht so aus, als ob ich zu bald feiern würde. Dies würde das all: unset nur auf Elemente anwenden, die kein conten tentable Attribut haben ... aber ich brauche die all: unset Eigenschaft, die auch für diese gilt. Aber ich habe eine Workaround mit jQuery ... das würde es für den Moment tun. Aber vielleicht gibt es dafür noch einen einfacheren Weg. – Verdemis

+0

Wie wäre es damit - http://codepen.io/Paulie-D/pen/MyPJdy –