为什么以下示例中的元素会自行折叠?
即使元素设置为box-sizing: border-box,它的边框也会保留,但是一旦元素突破其父级的边界,该元素就会丢失其全部宽度.
到底是怎么回事?
let t = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at velit commodo, facilisis ex vitae, viverra tellus.'
let c = 0
const e = document.getElementById('statement-container')
const i = setInterval(function(){
if (t[c] !== ' ') e.innerHTML += t[c]
else e.innerHTML += ' '
c++
if (c >= t.length) clearInterval(i)
}, 100)Run Code Online (Sandbox Code Playgroud)
* {
box-sizing : border-box;
}
body {
width : 100vw;
height : 100vh;
margin : 0;
}
section:first-child {
width …Run Code Online (Sandbox Code Playgroud)我对 NodeJS 很陌生,但我对 vanilla JS 有很多经验。
在下面的代码中,我到底做错了什么?
它console.log在应用程序的开发者控制台中没有任何内容,所以我假设通信渠道以某种方式中断了?
它与readdir异步的事实有什么关系吗?
fs.readdir(__dirname, (err, files)=>{
files.forEach((file, index)=>{
console.log('display', __dirname+'\\'+file) // this prints everything as expected
mainWindow.webContents.send('display', __dirname+'\\'+file)
// mainWindow.send(...) doesn't work either
})
})
Run Code Online (Sandbox Code Playgroud)
const electron = require('electron')
const {ipcRenderer} = electron
const con = document.getElementById('con')
ipcRenderer.on('display', (e, arg)=>{
const div = document.createElement('div')
const txt = document.createTextNode(arg)
div.appendChild(txt)
con.appendChild(div)
console.log(e) // neither this
console.log(arg) // nor this prints anything to the app's developer console
})
Run Code Online (Sandbox Code Playgroud)
这是包含所有代码的CODEPEN …
尽管我还没有找到答案,但问题很简单:除了蛮力之外,还有什么方法 可以计算响应网格中的列数?
#grid-container {
width: 100%;
height: 85%;
position: relative;
padding: var(--gap); /* adjusted with JS to make var(--gap) responsive */
display: grid;
grid-gap: var(--gap); /* adjusted with JS to make var(--gap) responsive */
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
box-sizing: border-box;
background: skyblue;
}
.grid-item {
width: 100%;
min-width: 120px;
max-width: 450px;
height: ; /* adjusted with JS on resize events to roughly maintain proportions */
min-height: 192px;
border-radius: 10px;
background: #333;
}
Run Code Online (Sandbox Code Playgroud)
我问的原因是因为我给网格项目a max-width导致了最后一个断点处的巨大间隙,我希望能够检测到该间隙,而不是设置显式的媒体查询。
在本地开发时,我想将所有单独的 JS 脚本作为文件保存在另一个文件夹中。我能够做到这一点的唯一方法是我不声明该meta声明。但是,通过不声明它,我当然会收到警告。
电子安全警告(不安全的内容安全策略)此渲染器进程没有设置内容安全策略或启用了“不安全评估”的策略。这使此应用程序的用户面临不必要的安全风险。
有没有办法在不忽略或违反 CSP 的情况下在本地执行此操作?
我正在寻找的只是可能值的列表,classinfo因为该文档未提供任何值,而且我似乎无法在线找到其他任何位置,更不用说SO了。
根据MDN 的说法, substr它被认为是最终可能被弃用的遗留代码。
因此我想知道是否substring更slice适合将字符串插入到特定索引处的其他字符串中?
或者是否有另一种方法实际上是为了这个目的?
我正在做的是通过 检测用户输入keydown,然后在某些情况下,拦截并推断以手动传递值。
input.onkeydown = function(e){
if (e.key === 'x'){
return false
}
this.value = // insert character at this.selectionEnd into this.value
return false
}
Run Code Online (Sandbox Code Playgroud)
我这样做的原因是这样我可以管理和限制用户输入,同时保证输出以特定方式格式化。换句话说,用户不必格式化他/她的输入。
我正在创建一个 Electron 应用程序来帮助我管理磁盘空间。不过,我希望它也能在 Linux/UNIX 上运行。
我编写了以下代码,该代码适用于 Windows,但不适用于 Linux/UNIX 系统。
window.onload = function(){
const cp = require('child_process')
cp.exec('wmic logicaldisk get size,freespace,caption', (error, stdout)=>{
let drives = stdout.trim()split('\r\r\n')
.map(value => value.trim().split(/\s{2,0}/))
.slice(1)
})
}
Run Code Online (Sandbox Code Playgroud)
输出看起来像这样。
[
["560232439808", "C:", "999526756352", "System" ]
["999369699328", "D:", "999558213632", "SSD" ]
["1511570386944", "E:", "8001545039872", "Get" ]
["4620751712256", "F:", "8001545039872", "BR" ]
["788449492992", "G:", "4000650883072", "Seen" ]
["2296009408512", "H:", "4000768323584", "Seen 2" ]
["3594248679424", "I:", "8001545039872", "2160" ]
["3507750227968", "J:", "8001545039872", "1080" ]
["945300619264", "K:", "999625322496", "Trailer" ] …Run Code Online (Sandbox Code Playgroud) 我使用 CSS 变量,这样我就可以轻松地进行彻底的更改。我的变量之一是--gap: 15px,到目前为止我已经使用了大约 15 次。但是,我现在需要使用 的反转值--gap,即-15px。
失败:
calc(0 - var(--gap))calc(var(--gap) * -1)作品:
calc(var(--gap) - calc(var(--gap) * 2))问题:
第一次尝试显然是最有说服力的,但为什么不起作用呢?
有没有比第三种方法更雄辩的方法来实现这一目标?
无论出于何种原因,fs.promises没有调用 for 的回调,但文档没有提到只有在出现错误时才调用它,这就是我假设会发生的情况......
fsp.writeFile('test.txt', 'callback doesnt work', 'utf8', (error) => {
console.log('callback is never called')
if (error) console.error(error)
})
Run Code Online (Sandbox Code Playgroud)
这在 Node.js 版本 12.13.0 上发生(或没有发生,哈哈)。
有人知道这是什么交易吗?
我有一张比视口大得多并以视口为中心的地图的大量图像,用户可以通过拖动屏幕来探索它。为了创造视差效果,我在前景中使用了大量云彩图像。当用户通过拖动探索地图时,背景和前景都以视差方式移动。到现在为止还挺好。
然而,我真正想要做的是给云的图像一个“默认”移动,它会在每次页面加载时随机生成,这样云就会一直移动,即使用户没有拖动。我知道这可以通过沿着路径动画前景来完成,但我不确定如何去做。
如何在每个页面加载时随机生成不规则弯曲或波浪路径?
有人知道任何可以做到这一点的算法吗?
我清理用户名输入如下:
function clean($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
Run Code Online (Sandbox Code Playgroud)
我正在使用PDO格式的预准备语句并散列密码,所以是否仍然建议清理密码输入?
下面是代码.要注意,从现在开始它还没有完成,也非常混乱.
<?php
// start session
session_start();
?>
<!DOCTYPE html>
<head>
<link href='css/verify-id.css' rel='stylesheet'>
</head>
<body>
<?php
function clean($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// set or enter password
if (isset($_POST['password']) && empty($_POST['password'])) {
$error = 'A password is required.';
$identity = '';
$tip = '';
$prompt = '';
} else …Run Code Online (Sandbox Code Playgroud) 我想要做的只是从美元数字中提取数字.
输入格式
...
$1,289,868
$62,000
$421
...
Run Code Online (Sandbox Code Playgroud)
期望的输出
...
1289868
62000
421
...
Run Code Online (Sandbox Code Playgroud)
我用来提取数字和逗号的正则表达式是:
r'\d+(,\d+){0,}'
哪个当然输出......
...
1,289,868
62,000
421
...
Run Code Online (Sandbox Code Playgroud)
我想要做的是将输出转换为整数(int(...)),但显然这不适用于逗号.我相信我可以自己解决这个问题,但我现在的运行时间非常短.
我知道我可以简单地使用r'\d+',但这显然将每个块分成单独的匹配...
出于某种原因,我的Scrapy蜘蛛抛出一个错误,这与输出混淆,即使我使用条件语句来防止这种情况.
脚本
import scrapy
class AmazonSpider(scrapy.Spider):
name = 'amazon'
def start_requests(self):
pages = ['https://www.amazon.ca/electronics-deals-electronics-sale-tv-sale/b/ref=sv_ce_0?ie=UTF8&node=2055586011']
yield scrapy.Request(url=pages[0], callback=self.parse)
def parse(self, response):
if response.status != 404:
cont_path = '//div[@class="a-row a-spacing-none"]/span[@class="a-size-small a-color-secondary a-text-strike"]/ancestor::div[@class="s-item-container"]'
cont_resp = response.xpath(cont_path).extract()
for idx in range(1, len(cont_resp)+1):
thrd_path = '(//div[@class="a-row a-spacing-none"]/span[@class="a-size-small a-color-secondary a-text-strike"]/ancestor::div[@class="s-item-container"])[' + str(idx) + ']/div[@class="a-row a-spacing-mini"][2]/div[4]/a/span[2]/text()'
thrd_resp = response.xpath(thrd_path).extract_first()
### i have also tried:
# != None
# and hasattr(thrd_resp, 'split')
if thrd_resp is not None:
obj['thrd_resp'] = float(pric_resp.split()[1])
###
yield obj
Run Code Online (Sandbox Code Playgroud)
日志
AttributeError: 'NoneType' object has …
javascript ×4
node.js ×4
css ×3
electron ×3
python ×3
css3 ×2
python-3.x ×2
algorithm ×1
canvas ×1
class ×1
css-grid ×1
events ×1
filesystems ×1
fs ×1
grid-layout ×1
html ×1
html5 ×1
html5-canvas ×1
insert ×1
ipc ×1
isinstance ×1
linux ×1
path ×1
pdo ×1
php ×1
promise ×1
python-2.7 ×1
regex ×1
scrapy ×1
security ×1
string ×1
types ×1
unix ×1