如何获得给定CSS属性的所有允许值的数组?
例如,CSS cursor
属性有以下允许值:url | auto | default | none | context-menu | help | pointer | progress | wait | cell | crosshair | text | vertical-text | alias | copy | move | no-drop | not-allowed | e-resize | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | ew-resize | ns-resize | nesw-resize | nwse-resize | col-resize | row-resize | all-scroll | zoom-in | zoom-out | grab | grabbing
如何获得给定CSS属性的所有允许值的数组?
,我需要把它们都(禁止url
也许)在JS数组。
问题是,如何创建这样一个数组? OFc我可以硬编码它,但如果在将来添加另一个允许的值,或者值被弃用或删除......那么,有没有任何方式提供的语言来获得这样一个数组?
此外,当然,从一些像MDN甚至从标准网页,这将是一个矫枉过正的文件站点获取此。
不幸的是,唯一的办法是硬编码或刮网页。 JavaScript没有任何允许这样的东西的原生函数。
需要记住的是,许多属性,如height
,width
等接受任何数量的值。
不知道你是否使用PHP,但这里有一种方法可以抓取一个具有此信息的网页,以获取每个CSS属性的值。很明显,您可能想要从网站获得许可,所以您不是通过访问属性页来敲击他们的服务器,因为您可以看到我只限于下面的10个结果。使用“ob”功能,不知道它是否是最豪华的解决方案。
<?php
ini_set('max_execution_time', 600);
ob_end_clean();
ob_implicit_flush(true);
libxml_use_internal_errors(true);
function getValuesForElement($element) {
$valueArray = [];
try {
$dom = new DOMDocument();
$dom->prevservWhiteSpace = false;
$dom->loadHTMLFile('http://css-infos.net/property/' . $element);
$data = $dom->getElementsByTagName('code');
foreach($data as $css) {
$val = preg_replace("/\s+/S", "", $css->nodeValue);
if(!empty($val)) {
$valueArray[] = $val;
}
}
} catch(Exception $e) {
// Log error..
}
return $valueArray;
}
function getElements() {
try {
$i = 0;
$elementsArr = [];
$dom = new DOMDocument();
$dom->prevservWhiteSpace = false;
$dom->loadHTMLFile('http://css-infos.net/');
$data = $dom->getElementsByTagName('li');
foreach($data as $css) {
if($i === 10) {
break;
}
$nodeVal = $css->nodeValue;
if($nodeVal == "Webkit CSS properties") {
continue;
}
$elementsArr[$nodeVal] = getValuesForElement($nodeVal);
echo "getting <strong><em>".$nodeVal."</em></strong> values..\n";
$i++;
sleep(1);
}
} catch(Exception $e) {
// Log error..
}
print_r($elementsArr);
}
echo "<pre>";
getElements();
die();
?>
只有真正的方法是需要维护的列表。 – epascarello
不,据我所知,没有办法获取一个样式的有效值列表,你必须用列表硬编码 – adeneo
看看这里:https://stackoverflow.com/questions/11219691/list-of-all-css-properties-and-allowed-values – Woodrow