每次我在CSS中添加一个选择器,我按Enter
下来定义属性,它最终会像这样:
#selector {
property: value;
}
Run Code Online (Sandbox Code Playgroud)
(8个空格标签)
如何配置Vim使其像这样:
#selector {
property: value;
}
Run Code Online (Sandbox Code Playgroud)
(4个空格标签)
我正在开发一个响应式网站,并遇到了一个有趣的问题.我有一些divs并排.它们可能有2到6个左右.当屏幕宽度不足以正确显示所有内容时,div会垂直堆叠.简单到使用CSS.
问题是,我需要它们按照不同的顺序排列.这很容易使用2或3个div(根据宽度更改div顺序),但在添加第四个时更具挑战性.
我可以使用position: absolute;
并手动设置位置,但这会导致父级缩小而不能正确包含它们.
为了使这更复杂,我不能使用JavaScript.
(另)
HTML:
<div id="container">
<div class="column-half column-half-2">
First div on mobile, right div on desktop
</div>
<div class="column-half column-half-1">
Second div on mobile, left div on desktop
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.container {
width: 80%;
max-width: 1200px;
margin: 0 auto;
padding-bottom: 20px;
position: relative;
}
.column-half {
display: table-cell;
padding: 25px;
vertical-align: top;
width: 40%;
}
.column-half-1 {
float: left;
}
.column-half-2 {
float: right;
}
Run Code Online (Sandbox Code Playgroud)
<div id="container">
<div class="column-quarter …
Run Code Online (Sandbox Code Playgroud) 注意:我最初将其发布到信息安全,但我开始认为它可能更相关,因为它确实是关于确定我应该如何处理请求而不是保护信息.
A
:我有一个A
向用户提供请求的系统.此服务器执行某些操作,然后将用户重定向到系统B
.在该重定向期间,服务器A
可以向用户提供32个字符的字母数字信息串以传递给系统B
.需要31个字符的信息,但其中一个可用作校验和.此字符串可以或多或少地被视为请求ID.
B
:当系统B
接收来自用户的请求时,它可以验证该请求(以及ID-等字符串)是有效的通过解析31个字符的字符串,查询数据库,再跟系统A.本系统可以绝对肯定验证请求有效并且没有被篡改,但它的计算成本非常高.
该系统可能会看到许多欺骗ID的尝试.这可以通过以后的检查进行过滤,因此我并不担心单个角色完全签署ID,但我确实希望避免花费更多资源来处理这些请求.
我正在寻找一个校验和/签名方案,它可以用一个字符让我很好地了解请求是否应该继续进行验证过程,或者是否应该立即将其丢弃为无效.如果一条消息被丢弃,我需要100%确定它是无效的,但如果我保留无效的消息也没关系.我相信理想的解决方案意味着保留1/62无效请求(攻击者必须猜测检查字符),但作为最小解决方案,丢弃所有无效请求的一半就足够了.
我看过使用卢恩算法(这是用于信用卡相同),但我想能够使用一键生成的字符,使其更难以攻击者欺骗校验.
作为创建签名方案的第一次尝试,我用一个31字节的密钥对31字节的id进行按位,对结果字节求和,转换为十进制并将数字加在一起直到它小于62,然后映射它到集合中的字符[a-bA-Z0-9]
(下面的伪代码).问题是虽然我很确定这不会丢弃任何有效的请求,但我不确定如何确定这将通过无效ID的频率,或者是否可以使用最终值检索密钥.
Set alphabet to (byte[]) "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
Set keystring to "aLaklj14sdLK87kxcvalskj7asfrq01";
Create empty byte[] key;
FOR each letter in keystring
Push (index of letter in alphabet) to key;
Create empty byte[] step1;
FOR each (r, k) in (request, key)
Push r XOR s to step1;
Set step2 to …
Run Code Online (Sandbox Code Playgroud) 我在格式化图表轴时遇到问题,我无法找到更新版本2.0的示例.
我怎么能(例如)2000000到€2.000.000?
我的小提琴:https://jsfiddle.net/Hiuxing/4sLxyfya/4/
window.onload = function() {
var ctx = document.getElementById("canvas").getContext("2d");
window.myBar = new Chart(ctx, {
type: 'bar',
data: barChartData,
options: {
title: {
display:true,
text:"Figure"
},
legend: {
position: "bottom"
},
tooltips: {
mode: 'label',
bodySpacing: 10,
cornerRadius: 0,
titleMarginBottom: 15
},
scales: {
xAxes: [{
ticks: {}
}],
yAxes: [{
ticks: {
beginAtZero: true,
stepSize: 500000
}
}]
},
responsive: true
}
});
};
Run Code Online (Sandbox Code Playgroud) 我的main.js
文件中有以下Javascript :
//array object of API stuff
function createChartWinLoss(wins, losses) {
var pieData = [
{
value: losses,
color: "#F7464A",
highlight: "#FF5A5E",
label: "Losses"
},
{
value: wins,
color: "#46BFBD",
highlight: "#5AD3D1",
label: "Wins"
}
];
var pieOptions = {
segmentShowStroke : false,
animateScale : true
}
var winLossChart = document.getElementById('winLossChart').getContext('2d');
new Chart(winLossChart).Pie(pieData, pieOptions);
}
//creates the chart with test data
createChartWinLoss();
function summonerLookUp() {
var SUMMONER_ID = "";
var API_KEY = "keyhere";
var sumID = $("#theKey").val();
var …
Run Code Online (Sandbox Code Playgroud) 我遇到了一个有趣的情况,我需要将私有github repo克隆到我在Kubernetes中运行的docker容器中.最初我尝试使用gitRepo挂载,但是,在我的部署清单中有一个OAuth密钥是不可接受的,我想使用repo deploy密钥而不是附加到我的GitHub帐户的OAuth密钥.
理想情况下,我会使用一个使用秘密进行身份验证的gitRepo挂载,但在撰写本文时此功能尚不可用.
我需要以下内容:
我尝试使用在单独的pod中运行的bash脚本将repo克隆到emptydir中(无论如何这个脚本都必须运行,我也将它用于其他事情),然后我遇到了将ssh键放入其中的问题.荚.这个问题是关于这个问题的,但它似乎没有办法实现.我能够使用秘密安装获取密钥,但随后权限设置为777.为了解决这个问题,我将密钥安装到/test/
目录中,然后尝试将cp
它们插入/root/.ssh/
.这给了我这些奇怪的错误:
cp: '/test/id_rsa' and '/root/.ssh/id_rsa' are the same file
cp: '/test/id_rsa.pub' and '/root/.ssh/id_rsa.pub' are the same file
Run Code Online (Sandbox Code Playgroud)
我也尝试使用cat
并将它们管道到他们的文件但是没有用.当我遇到错误的路径时,它首先给了我这些错误:
cat: /keys/id_rsa: input file is output file
cat: /keys/id_rsa.pub: input file is output file
Run Code Online (Sandbox Code Playgroud)
一旦我修复了路径,它就什么也没做,而且默默地失败了.kubectl exec
进入容器显示没有文件/root/.ssh/
.
我想我已经走到了这条道路的尽头,所以我认为这不是解决方案.
如果SSH有办法忽略密钥的权限 - 默认情况下它强制执行644或更少,我相信 - 然后上述解决方案是可能的.我很惊讶我没有找到任何方法来做到这一点,但我的google-fu总是出现结果,说你只需要正确设置权限.
理想情况下,我希望在容器中有一个密钥,用于使用其他回购项目进行此项目的未来扩展.可能还有其他一些方法可以做到这一点,我没有想过或尝试过.
我曾考虑尝试在环境变量中使用OAuth密钥,然后使用它来通过HTTPS克隆repo.这不太理想,但如果它有效,我会接受它.现在唯一阻止我这样做的是我无法使用部署密钥.如果有一种方法可以使用部署密钥使用OAuth,我还没有找到它,但如果有人知道更多,它可能是解决方案.
回购中没有任何东西我会在码头图像中感到不舒服,所以我可以走这条路.这个问题是我需要能够下载回购的更新.如果我把它放在容器中,我将无法在没有钥匙的情况下拉动它.可能有一些解决方法,我没有尝试过.
我觉得我什么都没有尝试,所以任何建议都值得一试.
我在循环中生成函数时遇到了一些JavaScript问题.
我想要这个工作的方式是一个for
循环,每次迭代,生成一个名为doStuff
+ 的函数i
.例如,第一次迭代将生成doStuff1()
第二次生成doStuff2()
,依此类推等等.功能本身(为了示例)只需要打印出来i
- 即doStuff1()
打印1
,doStuff2()
打印2
等.
实际发生的是i
,不会"坚持"在功能中.它成为全球范围的一部分或其他东西,所以每个功能都是10.如果单击下面代码段中的第一个按钮,则可以看到此信息.
在示例二中,我尝试使用function*
符号来创建适当的函数生成器.我很确定我之前已经实现了它,但我之前从未使用过这种表示法,所以我可能会离开.如果是这样的话,请告诉我.
其结果与示例2相同.
例如三,我决定尝试使用字符串而不是整数,它的工作原理!对于每次迭代,a
都附加到一个字符串,所以当我按顺序运行生成的函数时,我会得到一个漂亮的小金字塔a
.
由于我必须stringOut
在示例3 中将变量定义在不同的范围内,所以我决定尝试使用与示例4中的数字相同的变量,并且它再次起作用!这对我来说没有多大意义,因为在更高的范围内似乎更容易遭受与例1和2相同的问题.
function*
正确使用了发电机声明?function test1() {
document.getElementById("output").innerHTML = "#1 Output:";
var myFunctions = [];
for (var i = 0; i < 10; i++) {
myFunctions[i] = function() {
document.getElementById("output").innerHTML …
Run Code Online (Sandbox Code Playgroud)我正在基于 Vue2 中的二维数组生成一个表。我可以让表格在正确位置显示所有值,但我在格式化时遇到了问题。模板看起来像这样:
<table>
<thead>
<tr>
<th>Title</th>
<th>Column 1</th>
<th>Column 2</th>
</tr>
</thead>
<tbody>
<tr v-for="row in data">
<td>{{row[0]}}</td>
<td>{{row[3]+row[1]+row[4]}}</td>
<td>{{row[3]+row[2]+row[4]}}</td>
</tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
数据看起来像这样:
var data = [
['revenue', 123.4, 153.48, '$'],
['cost', 93.26, 109.48, '$'],
['profit', 30.14, 44, '$'],
['margin', 24.425, 28.668, '', '%']
];
Run Code Online (Sandbox Code Playgroud)
这有效... ish。我可以有我想要的任何行,我可以指定单位 - 前缀或后缀 - 但它并不完美。最大的问题是货币有不同的小数位数。我可以将这些值存储为字符串,但其中一些值在计算中重复使用,这意味着我必须解析它们。
正是在这一点上,我遇到了过滤器。由于我继承的这个项目已经内置了一堆,看起来他们会做我想做的。我可以把它改成它,{{row[1] | currency}}
然后它会以很好的格式吐出它。唯一的问题是我有混合的数据类型。在示例中revenue
,cost
、 和profit
都是货币值,但它margin
是一个百分比。
理想情况下,我想在每个数组的第 4 个索引中指定过滤器:
var data = [
['revenue', 123.4, 153.48, …
Run Code Online (Sandbox Code Playgroud) 我试图通过创建带有Javascript函数的HTML文件来帮助婆婆,该函数将通过在chrome上打开文件并单击来为她随机选择一个短语<button>
。但是,由于某种原因,它不起作用。
这是我对javascript函数的支持<head>
:
<script>
myfunction(array,randInt,item,){
var array = ["phrase here", "here", "and here"];
var randInt = randomGenerator(0, array.length-1);
var item = array[randInt];
document.getElementById('outputdiv').value = randInt;
}
</script>
Run Code Online (Sandbox Code Playgroud)
然后在<body>
我有:
<button type="button" onclick=myfunction(array,randInt,item,)>click me!</button>
<div id="outputdiv"></div>
Run Code Online (Sandbox Code Playgroud)
我尝试使用HTML验证程序,它说代码没有错。但是,当我加载网页时,该按钮没有任何作用。我敢肯定我缺少某个愚蠢的简单错误/修复,但是对于我一生来说,我不知道该在哪里。请帮我。提前致谢!