我相信如果没有javascript / jquery,以下情况是不可能的,但仍然想确认我在css / html / jquery中表现不佳。
我想将某种风格应用于元素,但仅限于在我的网站中访问特定网址时。
我正在使用asp.net,因此单个aspx页面模板可以满足一系列网址,因此我无法在模板的html中编写样式。
如果我在css文件中编写此样式并将其包含在模板中,它将应用于所有网址。
我可以通过jquery有选择地加载这个css文件,但我不想让jquery尽可能多地参与其中。
我也可以使用asp.net literal control
并根据代码隐藏的url加载css,但是添加新的url会涉及代码更改。它听起来也很混乱。
目前我通过javascript / jquery在document.ready
if (window.location.href.toLowerCase().indexOf("/some-url/") > 0)
{
$('#some-element-id').attr('style', 'display:none');
}
但这显示了在消失之前分裂的元素。
涉及jquery / javascript但解决上述问题的解决方案也会有所帮助。
我希望我能够正确解释它。
如果需要澄清,请告诉我。
答案 0 :(得分:1)
它可能首先显示,因为它在页面加载之前至少呈现一次,因此它将显示,直到在页面加载时调用jQuery ready()
函数。
我认为最简单的解决方法是默认隐藏元素,然后在URL中 时显示它:
#some-element-id{
display:none;
}
if (window.location.href.toLowerCase().indexOf("/some-url/") < 0)
{
$('#some-element-id').attr('style', 'display:block');
}
答案 1 :(得分:0)
如果#some-element-id
位于单独的页面上,则
some-class
添加到您的元素答案 2 :(得分:0)
URL
不属于DOM
,因此CSS
无法选择任何元素。
正如您所说,在特定URL
中应用css的唯一方法是使用javascript。
我可以告诉您的建议是使用addClass
代替
.attr('style', 'display:none');
或者如果您需要添加大量的CSS,您还可以包含或替换完整的文件,如:
$('head').append('<link rel="stylesheet" href="youStilefile.css" type="text/css" />');
我希望它有所帮助!
答案 3 :(得分:0)
最佳解决方案是通过从服务器生成的代码(独立于客户端)来分离您的CSS样式。
此外,您可以测试以下代码而不是// TitlePage.qml
import QtQuick 2.0
Item {
property string title
TitleText {
size: 22
anchors.top: parent.top
}
TitleText {
size: 18
anchors.bottom: parent.bottom
}
}
// TitleText.qml
import QtQuick 2.0
Text {
property int size
text: "<b>" + title + "</b>"
font.pixelSize: size
}
$('#some-element-id').attr('style', 'display:block');
请确保您的jq lib导入成功。