我在打印时在网页上附加版权信息,我使用了以下代码
@media print { .page:after { content: "© 2013 Copyright message"; font-size: 14px; position: absolute; } }
使用css有没有默认的方法来获取当前年份?
kgqe7b3p1#
您可以将日期附加到div本身(data-date)并在服务器端/JavaScript上生成它。然后在CSS中,你可以抓取它(attr(data-date))并附加到内容。它看起来像这样(抱歉,未经测试)
data-date
attr(data-date)
content: "© " attr(data-date) " Copyright message";
https://developer.mozilla.org/en-US/docs/Web/CSS/attrhttp://davidwalsh.name/css-content-attr
wn9m85ua2#
window.onload = function() { document.getElementById("spanYear").innerHTML = new Date().getFullYear(); }
Copyright 1900-<span id="spanYear"></span>
x8diyxa73#
在纯CSS中,这是不可能的。您需要使用JavaScript getDate()函数,或者如果您有任何可用的服务器端脚本功能,将其打印到您的页面中。你可以在HTML中添加一个额外的元素,用JS填充日期(年份),默认情况下用display:none隐藏,并在你的打印CSS中设置display:block。如果你真的想远离JavaScript,那么你也许可以在SASS中使用一个变量,但你仍然需要每年更新它!
getDate()
display:none
display:block
cetgtptt4#
我不确定这是否可行,但你可以给予一下。如果你熟悉Sass和Compass(一个css的预处理器和编译器),或者你愿意学习,你可以尝试一下def SomeController#...def create
def SomeController
#...
def create
@model = Model.new params[:model]
@model.date_field_name = Time.nowif @model.save
@model.date_field_name = Time.now
if @model.save
# whatever should be done if validation passes or redirect_to @model else # whatever should be done if validation fails or render :new end`
end#...endthe same problem solved in ruby我的意思是,由于Sass是构建在Ruby on Rails上的,所以你可以在Ruby中写几行代码,然后在项目中导入文件。编译结束后,您将只得到一个CSS文件。希望我帮了点忙。
end
sd2nnvve5#
如果你使用的是Apache Web服务器,你可以使用SHTML(active),我使用一个页脚文件来处理数千个页面。好吧,这里是:<!--#include virtual="myfile.txt" -->你也可以使用url。<!--#echo var="DATE_LOCAL"--> or <!--#echo var="DATE_GMT"-->或<!--#config timefmt="%A, %d %B %Y"--><!--#echo var="DATE_LOCAL"-->有大量的命令供您使用,但在我的网站上,我喜欢第一种形式。通过这种方式,我可以使内容虚拟化。所以我的方案是filename.inc,问题是如果你想插入一个新的include,它将不起作用,除非你称之为html/shtml。要让年份自动化,现在使用第一种形式。在你的服务器上,在那个文件里,你现在可以调用JavaScript/PHP/whatever来获取你的日期。享受克里斯BTW这里是我使用shtml的主页:
<!--#include virtual="myfile.txt" -->
<!--#echo var="DATE_LOCAL"--> or <!--#echo var="DATE_GMT"-->
<!--#config timefmt="%A, %d %B %Y"--><!--#echo var="DATE_LOCAL"-->
<body> <!--#config timefmt="%A, %B %d %Y"--> <table WIDTH=100% HEIGHT=20% BORDER=1> <tr HEIGHT=20%><td><center><font SIZE="+5"><b>Phoenix Trading</b></font><br> <font SIZE="+2"><i>Buy, Sell, Trade... One to a Million</i></font> </center></td></tr> </table> <table WIDTH=100% HEIGHT=70% BORDER=1> <tr HEIGTH=70%> <td width=200 align="left" valign="top"> <center><!--#echo var="DATE_LOCAL"--></center><br> <p><!--#include virtual="menus/menu.inc"--></p> </td> <td valign=center><br> <!--#include virtual="include/main.inc"--> </td></tr></table> <!--#include virtual="include/footer.inc"--> </body>
41zrol4v6#
如果你在用smarty你可以
<style>#company_info { content: "Copyright © 2010 - {$smarty.const.TIME|date_format:"%Y"} you_company"; }</style>
不工作你必须把它放在标签里。
5cnsuln77#
这是可能的,这里有一些例子:HTML
<h1>Copyright Year in CSS</h1> <h2>Set the current year using EQCSS</h2> <footer>Your Name</footer>
CSS
footer { padding: 0; font-size: 24pt; } @element 'footer' { $this:before { content: '© eval("new Date().getFullYear()")\ ' } }
这个例子取自这里:https://codepen.io/tomhodgins/pen/Qybgmo
tez616oj8#
几年前我用Visual Basic(VBScript)解决了版权更新问题,但不幸的是,这真的是一个静音点,因为VB似乎只在旧版本的Internet Explorer中工作(这个VB代码甚至没有出现在Internet Explorer 11中,我只是意识到通过阅读我的页脚这是我显然倾向于忽视的东西!lol)。这是我的VB代码,如果这有帮助的话,但人们真正需要的是一个过滤器,以隐藏它在任何浏览器以外的IE(...好吧,IE11使一个静音点,太!哈哈)。有没有人有一些快速解决这个问题的方法--但我假设同样的“...需要使用JavaScript”编码问题也适用?kml ;-)谢谢。
<script language="vbscript"> document.write ("Copyright © 1994-" + cstr(DatePart("YYYY", Now())) + " COPYRIGHT HOLDER NAME. All Rights Reserved.") </script>
8条答案
按热度按时间kgqe7b3p1#
您可以将日期附加到div本身(
data-date
)并在服务器端/JavaScript上生成它。然后在CSS中,你可以抓取它(attr(data-date)
)并附加到内容。它看起来像这样(抱歉,未经测试)https://developer.mozilla.org/en-US/docs/Web/CSS/attr
http://davidwalsh.name/css-content-attr
wn9m85ua2#
x8diyxa73#
在纯CSS中,这是不可能的。您需要使用JavaScript
getDate()
函数,或者如果您有任何可用的服务器端脚本功能,将其打印到您的页面中。你可以在HTML中添加一个额外的元素,用JS填充日期(年份),默认情况下用
display:none
隐藏,并在你的打印CSS中设置display:block
。如果你真的想远离JavaScript,那么你也许可以在SASS中使用一个变量,但你仍然需要每年更新它!
cetgtptt4#
我不确定这是否可行,但你可以给予一下。如果你熟悉Sass和Compass(一个css的预处理器和编译器),或者你愿意学习,你可以尝试一下
def SomeController
#...
def create
@model.date_field_name = Time.now
if @model.save
end
#...
end
the same problem solved in ruby
我的意思是,由于Sass是构建在Ruby on Rails上的,所以你可以在Ruby中写几行代码,然后在项目中导入文件。编译结束后,您将只得到一个CSS文件。希望我帮了点忙。
sd2nnvve5#
如果你使用的是Apache Web服务器,你可以使用SHTML(active),我使用一个页脚文件来处理数千个页面。好吧,这里是:
<!--#include virtual="myfile.txt" -->
你也可以使用url。<!--#echo var="DATE_LOCAL"--> or <!--#echo var="DATE_GMT"-->
或<!--#config timefmt="%A, %d %B %Y"--><!--#echo var="DATE_LOCAL"-->
有大量的命令供您使用,但在我的网站上,我喜欢第一种形式。通过这种方式,我可以使内容虚拟化。所以我的方案是filename.inc,问题是如果你想插入一个新的include,它将不起作用,除非你称之为html/shtml。要让年份自动化,现在使用第一种形式。在你的服务器上,在那个文件里,你现在可以调用JavaScript/PHP/whatever来获取你的日期。享受克里斯BTW这里是我使用shtml的主页:
41zrol4v6#
如果你在用smarty你可以
不工作你必须把它放在标签里。
5cnsuln77#
这是可能的,这里有一些例子:
HTML
CSS
这个例子取自这里:https://codepen.io/tomhodgins/pen/Qybgmo
tez616oj8#
几年前我用Visual Basic(VBScript)解决了版权更新问题,但不幸的是,这真的是一个静音点,因为VB似乎只在旧版本的Internet Explorer中工作(这个VB代码甚至没有出现在Internet Explorer 11中,我只是意识到通过阅读我的页脚这是我显然倾向于忽视的东西!lol)。
这是我的VB代码,如果这有帮助的话,但人们真正需要的是一个过滤器,以隐藏它在任何浏览器以外的IE(...好吧,IE11使一个静音点,太!哈哈)。有没有人有一些快速解决这个问题的方法--但我假设同样的“...需要使用JavaScript”编码问题也适用?kml ;-)谢谢。