incluir hojas etiquetas estilos estilo enlazar ejemplos data atributo css html5 attributes

hojas - Valores de CSS con el atributo de datos HTML5



hojas de estilo css (3)

A partir de hoy, puede leer algunos valores de atributos de data HTML5 en declaraciones CSS3. En fiddle el código CSS puede usar las propiedades de data para configurar el content .

Desafortunadamente no funciona para el width y la height (probado en Google Chrome 35, Mozilla Firefox 30 e Internet Explorer 11).

Pero hay un Polyfill CSS3 attr () de Fabrice Weinberg que proporciona soporte para data-width data-height . Puede encontrar el repositorio de GitHub aquí: cssattr.js .

Esta pregunta ya tiene una respuesta aquí:

width: attr(data-width);

Quiero saber si hay alguna manera de establecer un valor de css utilizando el atributo de data- de HTML5 de la misma manera que puede establecer el content css. Actualmente no funciona.

HTML

<div data-width="600px"></div>

CSS

div { width: attr(data-width) }


De hecho, hay una previsión para tal característica, mira http://www.w3.org/TR/css3-values/#attr-notation

Este fiddle debería funcionar como lo que necesita, pero no lo hará por ahora.

Desafortunadamente, sigue siendo un borrador y no está completamente implementado en los principales navegadores.

Sin embargo, funciona para content en pseudo-elementos.


Puede crear con javascript algunas rules css, que luego puede usar en sus estilos: http://jsfiddle.net/ARTsinn/vKbda/

var addRule = (function (sheet) { if(!sheet) return; return function (selector, styles) { if (sheet.insertRule) return sheet.insertRule(selector + " {" + styles + "}", sheet.cssRules.length); if (sheet.addRule) return sheet.addRule(selector, styles); } }(document.styleSheets[document.styleSheets.length - 1])); var i = 101; while (i--) { addRule("[data-width=''" + i + "%'']", "width:" + i + "%"); }

Esto crea 100 pseudo-selectores como este:

[data-width=''1%''] { width: 1%; } [data-width=''2%''] { width: 2%; } [data-width=''3%''] { width: 3%; } ... [data-width=''100%''] { width: 100%; }

Nota: Esto es un poco offtopic, y no realmente lo que usted (o alguien) quiere, pero tal vez útil.