Перемещение встроенного CSS во внешнюю таблицу стилей - PullRequest
1 голос
/ 05 декабря 2010

Я делаю модификации в макете Tumblr, в котором есть встроенный код CSS.То, что я планирую делать с Tumblr, - это создание чувствительного ко времени переключателя CSS с использованием небольшого кода JavaScript, который будет переключать темы между днем ​​и ночью.Это требует от меня наличия внешней таблицы стилей, чтобы скрипт мог переключаться между двумя таблицами стилей.

Я скопировал встроенный код во внешний файл CSS и загрузил его.Затем я сделал ссылку css на файл, но она, похоже, не работает.

и то, что я положил перед

<LINK REL=StyleSheet HREF="http://itsnotch.com/tumblr/files/gurucss.css" TYPE="text/css">

, также есть метаданные дляшрифты, названия, дата и т. д. Может ли это быть причиной того, что ссылка не работает?если да, могу ли я как-то использовать метаданные в css?

Вот весь код для макета

{block: Description} {/ block: Description}

    <!-- DEFAULT COLORS -->
    <meta name="color:Background" content="#d7a769"/>
    <meta name="color:Title" content="#444"/>
    <meta name="color:Description" content="#666"/>
    <meta name="color:Post Title" content="#c00"/>    
    <meta name="color:Text" content="#444"/>
    <meta name="color:Inline Link" content="#c00"/>
    <meta name="color:Quote" content="#666"/>
    <meta name="color:Quote Source" content="#444"/>
    <meta name="color:Link Post" content="#c00"/>
    <meta name="color:Conversation Background" content="#f8f8f8"/>
    <meta name="color:Conversation Border" content="#ddd"/>
    <meta name="color:Conversation Text" content="#444"/>
    <meta name="color:Conversation Label" content="#111"/>
    <meta name="color:Photo Border" content="#eee"/>
    <meta name="color:Date" content="#fff"/>
    <meta name="color:Date Background" content="#ccc"/>
    <!-- END DEFAULT COLORS -->


    <!-- DEFAULT SETTINGS -->
    <meta name="image:Background" content="http://assets.tumblr.com/images/x.gif" />
    <meta name="font:Title" content="Arial" />
    <meta name="font:Body" content="Lucida Sans" />
    <meta name="text:Disqus Shortname" content="" />

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>{block:SearchPage}Search results for "{SearchQuery}" - {/block:SearchPage}{block:PostSummary}{PostSummary} - {/block:PostSummary}{Title}</title>
    <link rel="icon" href="{Favicon}"/>
    <link rel="alternate" type="application/rss+xml" title="RSS" href="{RSS}"/>
    <meta name="viewport" content="width=775"/> <!-- iPhone -->

    <style type="text/css">
        body {
            margin:           0px;
            background-image: url('http://itsnotch.com/tumblr/images/nighttime_bg.jpg');
            background-repeat: repeat-x;
            background-attachment: fixed;
            background-position: top center;
            background-color:#b68e59;

            font-family:      {font:Body};
        }

        #content {
            width:            850px;
            margin:           auto;
            margin-top:       -44px;
            padding:          15px;
            background-color: {color:Content Background};
            position:         relative;
        }

        a {
            color:            {color:Inline Link};
        }

        h1 {
            padding:          30px 0px 50px 0px;
            margin:           0px;
            text-align:       center;
            font:             Bold 55px {font:Title};
            letter-spacing:   -2px;
            line-height:      50px;
        }

        h1 a {
            color:            {color:Title};
            text-decoration:  none;
        }

        #description {
            position:         absolute;
    left:        -189px;
            top:             150px;
        }

        #description div {
            font:             normal 18px {font:Body};
            line-height:      20px;
            width:            150px;
            color:            {color:Description};
        }

                    #description div#search {
                            text-align: left;
                    }

        #description div a {
            color:            {color:Description};
        }

        #description #nav_container {
            font-size: 13px;
            font-weight: bold;
        }

        #description #nav_container .dim {
            filter: alpha(opacity=50); 
            -moz-opacity: 0.5; 
            opacity: 0.5;
        }

                    #searchresultcount {
                        margin: 0 0 30px;
                        text-align: center;
                    }

        .post {
            position:         relative;
            margin-bottom:    40px;
        }

        .post div.labels {
            position:         absolute;
            right:            435px;
            text-align:       right;
            width:            150px;
        }

        .post div.date {
            background-color: {color:Date Background};
            white-space:      nowrap;
            font:             Normal 20px {font:Body};
            letter-spacing:   -1px;
            color:            {color:Date};
            display:          inline;
            padding:          3px 5px 0px 5px;
            line-height:      20px;
        }

        .post div.date a {
            color:            {color:Date};
            text-decoration:  none;
        }

        .post img {
          max-width: 100%;
        }

        .post h2 {
            font-size:        18px;
            font-weight:      Bold;
            color:            {color:Post Title};
            letter-spacing:   -1px;
            margin:           0px 0px 10px 0px;
        }

        .post h2 a {
            color:            {color:Post Title};
            text-decoration:  none;
        }

        /* Regular Post */
        .post .regular {
            font-size:        12px;
            color:            {color:Text};
            line-height:      17px;
        }

        .post .regular blockquote {
            font-style: italic;
        }

        /* Photo Post */
        .post .photo img {
            border:           solid 10px {color:Photo Border};
        }

        .post .photo div.caption {
            font-size:        11px;
            color:            {color:Text};
            margin-top:       5px;
        }

        .post .photo div.caption a {
            color:            {color:Text};
        }

        /* Quote Post */
        .post .quote span.quote {
            font:             Bold 28px {font:Body};
            letter-spacing:   -1px;
            color:            {color:Quote};
        }

        .post .quote span.quote a {
            color:            {color:Quote};
        }

        .post .quote span.quote big.quote {
            font:             Bold 60px Georgia, serif;
            line-height:      8px;
            vertical-align:   -20px;
        }

        .post .quote span.source {
            font-size:        16px;
            font-weight:      Bold;
            color:            {color:Quote Source};
            letter-spacing:   -1px;
        }

        .post .quote span.source a {
            color:            {color:Quote Source};
        }

        /* Link Post */
        .post .link a.link {
            font:             Bold 20px {font:Body};
            letter-spacing:   -1px;
            color:            {color:Link Post};
        }

        .post .link span.description {
            font-size: 13px;
            font-weight: normal;
            letter-spacing: -1px;
        }

        /* Conversation Post */
        .post .conversation ul {
            background-color: {color:Conversation Background};
            list-style-type:  none;
            margin:           0px;
            padding:          0px;
            border-left:      solid 5px {color:Conversation Border};
        }

        .post .conversation ul li {
            border-bottom:    solid 1px {color:Conversation Border};
            font-size:        12px;
            padding:          4px 0px 4px 8px;
            color:            {color:Conversation Text};
        }

        .post .conversation ul li span.label {
            font-weight:      bold;
            color:            {color:Conversation Label};
        }

        /* Audio Post */      
        .post .audio div.caption {
            font-size:        11px;
            color:            {color:Text};
            margin-top:       5px;
        }

        .post .audio div.caption a {
            color:            {color:Text};
        }

        /* Video Post */
        .post .video {
            width:            400px;
            margin:           auto;
        }

        .post .video div.caption {
            font-size:        11px;
            color:            {color:Text};
            margin-top:       5px;
        }

        .post div.video div.caption a {
            color:            {color:Text};
        }

        /* Footer */
        #footer {
            margin:           40px 0px 30px 0px;
            text-align:       center;
            font-size:        12px;
        }

        #footer a {
            text-decoration:  none;
            color:            {color:Text};
        }

        #footer a:hover {
            text-decoration:  underline;
        }

                    .query { font-weight: bold; }

        {CustomCSS}
    </style>

    <!--[if lt IE 7]>
        <style type="text/css">
            .post div.labels {
                right: 450px;
            }
        </style>
    <![endif]-->
</head>
<body>
    <div id="content">
        <h1><a href="/"><img src="http://itsnotch.com/tumblr/images/NotchTheGuru_Banner.jpg" border "0" /></a></h1>

        <div id="description">
            <div>
                                    <div id="search">
                                        <form action="/search" method="get">
                                            <input type="text" name="q" value="{SearchQuery}"/>
                                            <input type="submit" value="Search"/>
                                        </form>
                                    </div>

                {Description}

                <p id="nav_container">
                    <a href="/archive" id="archive_link">Archive</a>
                    <span class="dim">/</span>
                    <a href="{RSS}">RSS</a>
                </p>
            </div>
        </div>

                    {block:SearchPage}
                    <div id="searchresultcount">
                        <p>Your search for <span class="query">{SearchQuery}</span> returned {SearchResultCount} result(s).</p>
                    </div>
                    {/block:SearchPage}

        {block:Posts}
            <div class="post">
                <div class="labels">
                    {block:NewDayDate}
                        <div class="date"><a href="{Permalink}">{Month} {DayOfMonth}</a></div>
                    {/block:NewDayDate}

                    {block:SameDayDate}
                        <div class="date"><a href="{Permalink}">+</a></div>
                    {/block:SameDayDate}
                </div>

                {block:Regular}
                    <div class="regular">
                        {block:Title}<h2><a href="{Permalink}">{Title}</a></h2>{/block:Title}
                        {Body}
                    </div>
                {/block:Regular}

                {block:Photo}
                    <div class="photo">
                        {LinkOpenTag}<img src="{PhotoURL-400}" alt="{PhotoAlt}"/>{LinkCloseTag}
                        {block:Caption}
                            <div class="caption">{Caption}</div>
                        {/block:Caption}
                    </div>
                {/block:Photo}

                {block:Quote}
                    <div class="quote">
                        <span class="quote">
                            <big class="quote">&#147;</big> {Quote}
                        </span>
                        {block:Source}<span class="source">{Source}</span>{/block:Source}
                    </div>
                {/block:Quote}

                {block:Link}
                    <div class="link">
                        <a href="{URL}" class="link" {Target}>{Name}</a>
                        {block:Description}
                            <span class="description">{Description}</span>
                        {/block:Description}
                    </div>
                {/block:Link}

                {block:Conversation}
                    <div class="conversation">
                        {block:Title}<h2><a href="{Permalink}">{Title}</a></h2>{/block:Title}
                        <ul>
                            {block:Lines}
                                <li>
                                    {block:Label}<span class="label">{Label}</span>{/block:Label}
                                    {Line}
                                </li>
                            {/block:Lines}
                        </ul>
                    </div>
                {/block:Conversation}

                {block:Audio}
                    <div class="audio">
                        {AudioPlayerGrey}
                        {block:Caption}
                            <div class="caption">{Caption}</div>
                        {/block:Caption}
                    </div>
                {/block:Audio}

                {block:Video}
                    <div class="video">
                        {Video-400}
                        {block:Caption}
                            <div class="caption">{Caption}</div>
                        {/block:Caption}
                    </div>
                {/block:Video}
            </div>

            {block:IfDisqusShortname}
                {block:Permalink}
                    <div id="disqus_thread"></div>
                    <script type="text/javascript" src="http://disqus.com/forums/{text:Disqus Shortname}/embed.js"></script>
                    <noscript><a href="http://{text:Disqus Shortname}.disqus.com/?url=ref">View the discussion thread.</a></noscript>

                    <div style="text-align: right; margin-top: 5px">
                        <a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus">Disqus</span></a>
                    </div>
                {/block:Permalink}
            {/block:IfDisqusShortname}
        {/block:Posts}

        <div id="footer">
            {block:PreviousPage}
                <a href="{PreviousPage}">&#171; Previous</a> &nbsp;&nbsp;
            {/block:PreviousPage}

            {block:NextPage}
                <a href="{NextPage}">Next &#187;</a>
            {/block:NextPage}
        </div>
    </div>

    {block:IfDisqusShortname}
        <script type="text/javascript">
            //<![CDATA[
            (function() {
                var links = document.getElementsByTagName('a');
                var query = '?';
                for(var i = 0; i < links.length; i++) {
                    if(links[i].href.indexOf('#disqus_thread') >= 0) {
                        query += 'url' + i + '=' + encodeURIComponent(links[i].href) + '&';
                    }
                }
                document.write('<script charset="utf-8" type="text/javascript" src="http://disqus.com/forums/{text:Disqus Shortname}/get_num_replies.js' + query + '"></' + 'script>');
            })();
            //]]>
        </script>
    {/block:IfDisqusShortname}
</body>

Я взял часть, которая была между тегами чуть ниже закрытия, и переместил ее в отдельный файл на моем сервере.А затем связал его, используя приведенный выше код ссылки, и это не сработало.Итак, я думаю, что делаю что-то не так.

Ответы [ 3 ]

2 голосов
/ 05 декабря 2010

Здесь происходит то, что ваш HTML использует какие-то умные теги для извлечения данных из Tumblr CMS (извините, я никогда не использовал Tumblr), но вот что это:

{block:SearchPage}{/block:SearchPage}

Так что не удаляйте их! Или данные не будут загружены, и ваш сайт не будет работать!

Затем, если можете, удалите весь встроенный CSS и поместите этот код в таблицу внешних стилей:

body {
margin: 0px;
background-image: url('http://itsnotch.com/tumblr/images/nighttime_bg.jpg');
background-repeat: repeat-x;
background-attachment: fixed;
background-position: top center;
background-color:#b68e59;
font-family: Lucida Sans;
}

#content {
width:850px;
margin:   auto;
margin-top:   -44px;
padding:  15px;
background-color: #d7a769;
position: relative;
}

a {
color:#c00;
}

h1 {
padding:  30px 0px 50px 0px;
margin:   0px;
text-align:   center;
font: Bold 55px Arial;
letter-spacing:   -2px;
line-height:  50px;
}

h1 a {
color: #444;
text-decoration:  none;
}

#description {
position: absolute;
        left:-189px;
top: 150px;
}

#description div {
font: normal 18px Lucida Sans;
line-height:  20px;
width:150px;
color:#666;
}

#description div#search {
text-align: left;
}

#description div a {
color: #666;
}

#description #nav_container {
font-size: 13px;
font-weight: bold;
}

#description #nav_container .dim {
filter: alpha(opacity=50); 
-moz-opacity: 0.5; 
opacity: 0.5;
}

#searchresultcount {
margin: 0 0 30px;
text-align: center;
}

.post {
position: relative;
margin-bottom:40px;
}

.post div.labels {
position: absolute;
right:435px;
text-align:   right;
width:150px;
}

.post div.date {
background-color: #ccc;
white-space:  nowrap;
font: Normal 20px Lucida Sans;
letter-spacing:   -1px;
color:#fff;
display:  inline;
padding:  3px 5px 0px 5px;
line-height:  20px;
}

.post div.date a {
color:#fff;
text-decoration:  none;
}

.post img {
  max-width: 100%;
}

.post h2 {
font-size:18px;
font-weight:  Bold;
color:#c00;
letter-spacing:   -1px;
margin:   0px 0px 10px 0px;
}

.post h2 a {
color:#c00;
text-decoration:  none;
}

/* Regular Post */
.post .regular {
font-size:12px;
color:#444;
line-height:  17px;
}

.post .regular blockquote {
font-style: italic;
}

/* Photo Post */
.post .photo img {
border:   solid 10px #eee;
}

.post .photo div.caption {
font-size:11px;
color:#444;
margin-top:   5px;
}

.post .photo div.caption a {
color:#444;
}

/* Quote Post */
.post .quote span.quote {
font: Bold 28px Lucida Sans;
letter-spacing:   -1px;
color:#666;
}

.post .quote span.quote a {
color:#666;
}

.post .quote span.quote big.quote {
font: Bold 60px Georgia, serif;
line-height:  8px;
vertical-align:   -20px;
}

.post .quote span.source {
font-size:16px;
font-weight:  Bold;
color:#444;
letter-spacing:   -1px;
}

.post .quote span.source a {
color:#444;
}

/* Link Post */
.post .link a.link {
font: Bold 20px Lucida Sans;
letter-spacing:   -1px;
color:#c00;
}

.post .link span.description {
font-size: 13px;
font-weight: normal;
letter-spacing: -1px;
}

/* Conversation Post */
.post .conversation ul {
background-color: #f8f8f8;
list-style-type:  none;
margin:   0px;
padding:  0px;
border-left:  solid 5px #ddd;
}

.post .conversation ul li {
border-bottom:solid 1px #ddd;
font-size:12px;
padding:  4px 0px 4px 8px;
color:#444;
}

.post .conversation ul li span.label {
font-weight:  bold;
color:#111;
}

/* Audio Post */  
.post .audio div.caption {
font-size:11px;
color:#444;
margin-top:   5px;
}

.post .audio div.caption a {
color:#444;
}

/* Video Post */
.post .video {
width:400px;
margin:   auto;
}

.post .video div.caption {
font-size:11px;
color:#444;
margin-top:   5px;
}

.post div.video div.caption a {
color:#444;
}

/* Footer */
#footer {
margin:   40px 0px 30px 0px;
text-align:   center;
font-size:12px;
}

#footer a {
text-decoration:  none;
color:#444;
}

#footer a:hover {
text-decoration:  underline;
}

.query { font-weight: bold; }

Здесь я взял переменные, показанные в метатегах, а затем выполнил поиск / замену для каждого соответствующего тега.

Внешний CSS не будет поддерживать фигурные скобки {} внутри других фигурных скобок, поэтому он не будет проверяться (@Lekensteyn). Но сбивает с толку то, что Smarty также использует эти фигурные скобки, так что это означает, что он будет работать, пока встроен, но не во внешнем CSS-файле ALL CSS!

Надеюсь, это имеет смысл.

Вставьте мой измененный CSS в ваш внешний файл, удалите встроенный CSS, если можете, и оставьте все остальное на месте!

2 голосов
/ 05 декабря 2010

@ Джош Причина, по которой ваша таблица стилей не работает, заключается в том, что, как вы сказали, HTML имеет встроенный код CSS, который всегда будет иметь больший вес, чем таблица стилей.

Итак, простое решениея могу подумать о том, чтобы добавить «! Important» после значений ваших внешних атрибутов таблицы стилей.Это теперь придаст больше веса вашей таблице стилей.

Например:

, если ваш HTML имеет:

<p style="color:red;">hello world</p>

, а ваша таблица стилей имеет:

p { color:blue; }

Ваши абзацы будут красного цвета.Но если вы добавите «! Важно», то есть:

p { color:blue!important; }

Теперь абзацы будут выделены синим цветом:)

Надеюсь, что это решит вашу проблему!

0 голосов
/ 05 декабря 2010

Я понял, в чем проблема.Идиот, который запрограммировал это, использовал мета шорткод для цветов и затем использовал их.Это использовалось для того, чтобы новички Tumblr могли изменять цвет шрифтов и т. Д.

1002 * Я решил поместить фон в другую таблицу стилей и оставить все внутри HTML-кода.Я мог (вероятно, должен) переписать код.Но я не чувствую этого.(может быть позже).

Надеюсь, теперь я могу заставить этот Java-код работать на странице

<SCRIPT LANGUAGE="JavaScript"> 
Begin function getCSS()
{
  datetoday = new Date();
  timenow=datetoday.getTime();
  datetoday.setTime(timenow);
  thehour = datetoday.getHours();

  if (thehour > 20)
    display = "http://itsnotch.com/tumblr/files/nighttime.css";
  else if (thehour > 7)
    display = "http://itsnotch.com/tumblr/files/daytime.css";
  else 
    display = "http://itsnotch.com/tumblr/files/nighttime.css";

  var css = '';

  document.write(css);// 
}
</script>
<script language="javascript">getCSS();</script>

Пока что ..... ничего хорошего: - /

...