Beispiel #1
0
        public CssRule CreateViewport(CssToken current)
        {
            var token = _tokenizer.Get();
            var rule  = new CssViewportRule(_parser);

            if (token.Type != CssTokenType.CurlyBracketOpen)
            {
                return(SkipDeclarations(token));
            }

            FillDeclarations(rule, Factory.Properties.CreateViewport);
            return(rule);
        }
        private CssViewportRule CreateViewport(CssViewportRule rule, CssToken current)
        {
            var token = NextToken();

            CollectTrivia(ref token);

            if (token.Type != CssTokenType.CurlyBracketOpen)
            {
                SkipDeclarations(token);
                return(null);
            }

            FillDeclarations(rule);
            return(rule);
        }
Beispiel #3
0
        public CssRule CreateViewport(CssToken current)
        {
            var rule  = new CssViewportRule(_parser);
            var start = current.Position;
            var token = NextToken();

            _nodes.Push(rule);
            CollectTrivia(ref token);

            if (token.Type == CssTokenType.CurlyBracketOpen)
            {
                var end = FillDeclarations(rule, Factory.Properties.CreateViewport);
                rule.SourceCode = CreateView(start, end);
                _nodes.Pop();
                return(rule);
            }

            _nodes.Pop();
            return(SkipDeclarations(token));
        }
        private ICssRule CreateAtRule(ICssStyleSheet sheet, CssToken token)
        {
            if (token.Data.Is(RuleNames.Media))
            {
                var rule = new CssMediaRule(sheet);
                return(CreateMedia(rule, token));
            }
            else if (token.Data.Is(RuleNames.FontFace))
            {
                var rule = new CssFontFaceRule(sheet);
                return(CreateFontFace(rule, token));
            }
            else if (token.Data.Is(RuleNames.Keyframes))
            {
                var rule = new CssKeyframesRule(sheet);
                return(CreateKeyframes(rule, token));
            }
            else if (token.Data.Is(RuleNames.Import))
            {
                var rule = new CssImportRule(sheet);
                return(CreateImport(rule, token));
            }
            else if (token.Data.Is(RuleNames.Charset))
            {
                var rule = new CssCharsetRule(sheet);
                return(CreateCharset(rule, token));
            }
            else if (token.Data.Is(RuleNames.Namespace))
            {
                var rule = new CssNamespaceRule(sheet);
                return(CreateNamespace(rule, token));
            }
            else if (token.Data.Is(RuleNames.Page))
            {
                var rule = new CssPageRule(sheet);
                return(CreatePage(rule, token));
            }
            else if (token.Data.Is(RuleNames.Supports))
            {
                var rule = new CssSupportsRule(sheet);
                return(CreateSupports(rule, token));
            }
            else if (token.Data.Is(RuleNames.ViewPort))
            {
                var rule = new CssViewportRule(sheet);
                return(CreateViewport(rule, token));
            }
            else if (token.Data.Is(RuleNames.Document))
            {
                var rule = new CssDocumentRule(sheet);
                return(CreateDocument(rule, token));
            }
            else if (_options.IsIncludingUnknownRules)
            {
                return(CreateUnknownAtRule(sheet, token));
            }

            RaiseErrorOccurred(CssParseError.UnknownAtRule, token.Position);
            JumpToRuleEnd(ref token);
            return(null);
        }