通常我使用modernizr来找出浏览器的能力.同时,我使用LESS CSS使我的css更具可读性和可维护性.使用LESS嵌套规则的常见样式如下所示:
#header {
color: black;
.logo {
width: 300px;
color: rgba(255,255,255,.6);
&:hover { text-decoration: none }
}
}
Run Code Online (Sandbox Code Playgroud)
然后,如果我使用modernizr样式回退,我将为前一个块添加此文本:
.no-js #header,
.no-rgba #header {
.logo {
color: white;
}
}
Run Code Online (Sandbox Code Playgroud)
所以,看起来我有两个代码分支,每次我需要检查另一个兼容性方面时,分支的数量会增长.此代码的可维护性较差,因为您必须找到应用于每个元素的所有样式,并且使用嵌套类获得的好处会消失.
问题是:在LESS语法中是否有一种方法可以包含这样的回退,而不是为.no-js和其他.no-smth类启动新的代码分支?
我想在使用 puppeteer 编写的测试期间读取请求 cookie。但我注意到我检查的大多数请求只有引用和用户代理标头。如果我在 Chrome 开发工具中查看相同的请求,它们会有更多的标头,包括 Cookie。要查看它,请将下面的代码复制粘贴到https://try-puppeteer.appspot.com/ 中。
const browser = await puppeteer.launch();
const page = await browser.newPage();
page.on('request', function(request) {
console.log(JSON.stringify(request.headers, null, 2));
});
await page.goto('https://google.com/', {waitUntil: 'networkidle'});
await browser.close();
Run Code Online (Sandbox Code Playgroud)
您可以访问和不能访问哪些请求标头是否有限制?是Chrome本身的限制还是puppeteer的限制?
感谢您的建议!
我需要让我的谷歌地图V3整整一圈.我在它上面使用CSS3边框半径,但它只能在Firfox中正常工作,其他只是将它保留为矩形.以下是代码:
<div class="map mapCircle" style="position: relative; background-color: transparent; overflow: hidden;">
<div style="position: absolute; left: 0px; top: 0px; overflow: hidden; width: 100%; height: 100%; z-index: 0;">
<div style="position: absolute; left: 0px; top: 0px; overflow: hidden; width: 100%; height: 100%;">
...
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
和CSS:
.map.mapCircle {
width: 476px;
height: 476px;
}
.mapCircle>div>div:first-child {
-moz-border-radius: 238px;
-webkit-border-radius: 238px;
border-radius: 238px;
}
Run Code Online (Sandbox Code Playgroud)
是的,我知道,我可以使用一些背景颜色的叠加图像.但真正的问题是背景不仅仅是色彩.它根据其内容而变化,通常是渐变.有没有办法让Chrome和其他基于wabkit的浏览器和Opera(我对IE没有任何希望)以与FF相同的方式呈现它?
UPD:刚刚在IE9中测试过,它呈现正常.webkit和Opera出了什么问题?
UPD 2:我使用OverZealous的andwer并发现它仅适用于Safari.Chrome仅断言PNG掩码,Opera根本不是webkit.需要更多的想法
我是Rails的新手,遇到了一个我不理解的奇怪问题。我将ActiveRecord用作会话存储,并且需要为所有请求添加会话ID作为JSON响应的属性。如果对情况有一定影响,我也会使用Devise。问题是,如果请求是由没有Cookie(或至少在Cookie中没有会话ID)的用户发出的,则session.id为空或-请注意-请不要在响应Cookie中设置相同的值。
为了进行调试,我将此代码作为after_filter添加到ApplicationController中:
puts session.id
puts request.session_options[:id]
Run Code Online (Sandbox Code Playgroud)
这两个值是相同的。它们匹配cookie中的值(如果存在)。否则,如果cookie中不存在会话ID,则在该请求之后设置的cookie具有不同的值。
我的意见是,session_id在实际保存到数据库之后必须获取新值,该数据库必须是唯一的。数据库迁移:
def change
create_table :sessions do |t|
t.string :session_id, :null => false
t.text :data
t.timestamps
end
add_index :sessions, :session_id, :unique => true
add_index :sessions, :updated_at
end
Run Code Online (Sandbox Code Playgroud)
我的问题:如何在呈现第一个响应之前获取新会话的实际session.id值?
UPD:
我刚刚创建了一个新的Rails应用程序,该应用程序使用的ActiveRecord会话存储没有Devise,我可以在要使用此代码ID应用程序控制器响应之前在cookie中设置session.id:
class ApplicationController < ActionController::Base
after_filter :show_session
def show_session
puts session.id
end
end
Run Code Online (Sandbox Code Playgroud)
但是在使用Devise的现有应用程序中,我得到的值确实看起来像会话ID,但与通过Set-Cookie响应标头在cookie中设置的值和实际保存到数据库中session表的值不匹配。看起来Devise在某种程度上与ActiveRecord会话存储有冲突。需要更深入地了解它。
UPD 2
看来我找到了问题的根源。就像我说的,我使用Devise对Omniauth进行授权。根据文档,出于安全原因,sign_in方法重置会话ID。但是,在该重置session.id返回旧值之后,该值已被自动设置。我将此代码用作Omniauth回调:
def facebook_access_token
sign_in @user
puts session.id
end
Run Code Online (Sandbox Code Playgroud)
在控制台中,我获得的会话ID与Set-Cookie响应标头中的会话ID不同。如果我在“ sign_in”行中注释,则这些值匹配。新问题:在sign_in方法内将新的会话ID值重置后,如何获取?它是内部的Warden / Devise实现还是其他?
我正在寻找任何浏览器的附加组件,可以将任何特定网页元素及其所有样式复制到剪贴板中以粘贴并显示某人.
其目的是有机会快速分享我的大项目的一小部分或者写这个HTML和CSS技巧的文章,以协助或检查某人的其他工作的一部分.
有任何想法吗?如果没有这样的插件,我会尝试自己编写.
html css firefox-addon browser-extension google-chrome-extension
我在添加svg文件作为背景时遇到问题.一切似乎都很好,但在谷歌浏览器中,我在svg的右侧和底部得到非活动的滚动条,而不是容器.以下是问题结果的屏幕截图:http://xmages.net/show.php/2812560_strangescrollbars-jpg.html
这是css的一部分
#container>footer {
width: 1000px;
margin: -124px auto 0;
padding-top: 221px;
background: transparent url("../img/footerBackground.png") no-repeat 42px 0;
}
.backgroundsize.svg #container>footer {
background: transparent url("../img/vector/footerBackground.svg") no-repeat 42px 0;
background-size: 553px 166px;
}
Run Code Online (Sandbox Code Playgroud)
我不知道他们来自哪里.有帮助吗?