⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 backgroundposition.php

📁 很棒的在线教学系统
💻 PHP
字号:
<?phprequire_once 'HTMLPurifier/AttrDef.php';require_once 'HTMLPurifier/AttrDef/CSS/Length.php';require_once 'HTMLPurifier/AttrDef/CSS/Percentage.php';/* W3C says:    [ // adjective and number must be in correct order, even if      // you could switch them without introducing ambiguity.      // some browsers support that syntax        [            <percentage> | <length> | left | center | right        ]        [             <percentage> | <length> | top | center | bottom        ]?    ] |    [ // this signifies that the vertical and horizontal adjectives      // can be arbitrarily ordered, however, there can only be two,      // one of each, or none at all        [            left | center | right        ] ||        [            top | center | bottom        ]    ]    top, left = 0%    center, (none) = 50%    bottom, right = 100%*//* QuirksMode says:    keyword + length/percentage must be ordered correctly, as per W3C        Internet Explorer and Opera, however, support arbitrary ordering. We    should fix it up.        Minor issue though, not strictly necessary.*/// control freaks may appreciate the ability to convert these to// percentages or something, but it's not necessary/** * Validates the value of background-position. */class HTMLPurifier_AttrDef_CSS_BackgroundPosition extends HTMLPurifier_AttrDef{        var $length;    var $percentage;        function HTMLPurifier_AttrDef_CSS_BackgroundPosition() {        $this->length     = new HTMLPurifier_AttrDef_CSS_Length();        $this->percentage = new HTMLPurifier_AttrDef_CSS_Percentage();    }        function validate($string, $config, &$context) {        $string = $this->parseCDATA($string);        $bits = explode(' ', $string);                $keywords = array();        $keywords['h'] = false; // left, right        $keywords['v'] = false; // top, bottom        $keywords['c'] = false; // center        $measures = array();                $i = 0;                $lookup = array(            'top' => 'v',            'bottom' => 'v',            'left' => 'h',            'right' => 'h',            'center' => 'c'        );                foreach ($bits as $bit) {            if ($bit === '') continue;                        // test for keyword            $lbit = ctype_lower($bit) ? $bit : strtolower($bit);            if (isset($lookup[$lbit])) {                $status = $lookup[$lbit];                $keywords[$status] = $lbit;                $i++;            }                        // test for length            $r = $this->length->validate($bit, $config, $context);            if ($r !== false) {                $measures[] = $r;                $i++;            }                        // test for percentage            $r = $this->percentage->validate($bit, $config, $context);            if ($r !== false) {                $measures[] = $r;                $i++;            }                    }                if (!$i) return false; // no valid values were caught                        $ret = array();                // first keyword        if     ($keywords['h'])     $ret[] = $keywords['h'];        elseif (count($measures))   $ret[] = array_shift($measures);        elseif ($keywords['c']) {            $ret[] = $keywords['c'];            $keywords['c'] = false; // prevent re-use: center = center center        }                if     ($keywords['v'])     $ret[] = $keywords['v'];        elseif (count($measures))   $ret[] = array_shift($measures);        elseif ($keywords['c'])     $ret[] = $keywords['c'];                if (empty($ret)) return false;        return implode(' ', $ret);            }    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -