• 关于 两侧 的搜索结果

回答

在我的印象中&&比较常用到,而&用到的次数不是很多 Java中&叫做按位与,&&叫做短路与,它们的区别是: & 既是位运算符又是逻辑运算符,&的两侧可以是int,也可以是boolean表达式,当&两侧是int时,要先把运算符两侧的数转化为二进制数再进行运算,而短路与(&&)的两侧要求必须是布尔表达式。

津崎平匡 2020-03-29 23:22:58 0 浏览量 回答数 0

回答

这个饼图能不能设置直接在label上显示实际数据/百分比?感谢啊!!能否指教一下如何固定label位置但是label的位置不能固定啊?请问有办法固定label的位置吗?我想在饼图的两侧上部显示数据,因为饼图显示2个数据的占比,我想在左右两侧的上部显示.

爱吃鱼的程序员 2020-06-10 13:25:26 0 浏览量 回答数 0

问题

设置图片阴影怎么控制阴影大小

小旋风柴进 2019-12-01 20:17:39 945 浏览量 回答数 1

新用户福利专场,云服务器ECS低至102元/年

新用户专场,1核2G 102元/年起,2核4G 699.8元/年起

回答

尝试像这样在SearchAdapter中添加额外的意图: intent.putExtra(DetailActivity.EXTRA_DETAIL, strPlaceList.get(position)); 附加项的值键必须在两侧相同。 回答来源:Stack Overflow

montos 2020-03-25 23:37:01 0 浏览量 回答数 0

回答

Re请帮我测速下,谢谢。 楼主,我宁波电信的,你的网站我这边打开速度是4秒 网站页面打开速度挺快的,主要是左右两侧的淘宝广告打开比较慢。

nblmx 2019-12-02 00:52:00 0 浏览量 回答数 0

回答

利用仪器内自由悬挂的陀螺转子自动寻北原理来确定真北方向,并用经纬仪测定真北方向和目标方向的水平角,也就是真方位角。 自动寻北原理,是利用地球自转所带来的重力矩(指向真北),使高速旋转的陀螺转轴产生趋北向的进动,最后形成以北向为对称中心的简谐运动,两侧最大摆幅的中间指向便是真北方向。

寒凝雪 2019-12-02 01:17:18 0 浏览量 回答数 0

回答

这句话“clickable ? CLICKABLE : 0 ”表示 判断clickable是否为true,进而得出不同结果(:的两侧)。如果是true,则结果是冒号左侧的CLICKABLE,那么 setFlags函数传入的参数是: setFlags(CLICKABLE,CLICKABLE);如果是false,则结果是冒号右侧的0,那么 setFlags函数传入的参数是: setFlags(0,CLICKABLE)。clickable ? CLICKABLE : 0 可以解释为if(clickable)value = CLICKABLE;elsevalue = 0;

蛮大人123 2019-12-02 02:40:47 0 浏览量 回答数 0

回答

js 分页代码 //翻页调用 function pageCallback(index,pg) { loadData(index); return false; } function loadData(pageIndex){ .... $("#pagination").pagination(total, { callback: pageCallback, prev_text: '上一页', //上一页按钮里text next_text: '下一页', //下一页按钮里text items_per_page: pageSize, //显示条数 num_display_entries: 6, //连续分页主体部分分页条目数 num_edge_entries: 2 //两侧首尾分页条目数 }); ..... }

a123456678 2019-12-02 03:07:13 0 浏览量 回答数 0

问题

【!急急急!】ios modal窗口中图片显示问题

bayview 2019-12-01 21:32:19 3114 浏览量 回答数 0

问题

如何在PHP中修剪数组值的空白

保持可爱mmm 2020-01-16 17:24:39 0 浏览量 回答数 1

回答

您好。其他回答我看了都不能解决您的问题。 您需要通过高速通道打通内网。 高速通道能否支持跨地域的VPC内网互连? 支持。高速通道支持相同地域或不同地域的VPC之间进行内网互连。您可以在两侧VPC的路由器上分别创建路由器接口,通过阿里云自有的骨干传输网络来搭建高速通道,轻松实现两个VPC之间安全可靠、方便快捷的通信。 官网高速通道介绍:https://help.aliyun.com/knowledge_detail/52497.html?spm=5176.11065259.1996646101.searchclickresult.169d658ckpqqFC 希望采纳。

qq78315851 2019-12-01 23:51:41 0 浏览量 回答数 0

问题

如果想在1200像素下的子元素获取满屏的宽要如何实现?

杨冬芳 2019-12-01 19:45:18 885 浏览量 回答数 1

问题

有如下 布局, 如果想在1200像素下的子元素获取满屏的宽要如何实现?

杨冬芳 2019-12-01 20:05:52 1035 浏览量 回答数 1

问题

Swagger yaml文件Response显示格式

gowhere 2019-12-01 19:32:05 2645 浏览量 回答数 1

问题

如何从python访问自定义Swift或Objective C框架

祖安文状元 2020-02-21 17:55:40 2 浏览量 回答数 1

回答

/ext/standard/file.c 的第 1867 - 1875 行 ...这里描述了 enclosure ... 我翻译成 包围符 出现的规则 ...双引号本身正是默认的包围符 ... 触发了规则 ... 导致双引号外面再加双引号造成两个双引号的结果 ...知道了原理 ... 我们来研究对策 ...第一种方法 ... 使用默认的双引号做包围符 ... 但是强制所有元素触发 ...产生的结果大概会类似于下面这样 ...第二种方法 ... 我们去研究手册 ... 手册上关于这个函数的说明是这样的 ...你可以看到这个函数支持自定义包围符 ... 也就是第四个参数 $enclosure ...于是我们可以手动在所有元素的两侧加上双引号 ... 并修改默认的包围符为空 ...这种方式可以让你的例子返回完美的结果 ...但是如果元素触发了包围符出现规则的话 ... 就会在分隔符也就是逗号的两端出现空格 ...

落地花开啦 2019-12-02 02:45:21 0 浏览量 回答数 0

问题

阿里巴巴人工智能实验室携众多黑科技亮相

青蛙跳 2019-12-01 21:45:10 1676 浏览量 回答数 0

回答

管道两侧的命令是同时执行的,并不是先执行前面一个,执行完毕后把输出交给后面的命令,所以ps的结果包含 grep "a.php"这条命令,这个命令本身就包含了a.php这个字符串所以即使没有a.php这个进程,你通过grep依然可以执行成功,进一步说,ps之后grep任何普通字符串都可以成功xelz@ubuntu: ~ [12:01:40]$ ps -ef | grep any_thing_you_want ; echo $?xelz 30076 29945 0 12:04 pts/0 00:00:00 grep --color=auto any_thing_you_want0解决办法你可以再grep一次,过滤掉 grep命令本身ps -ef f | grep 'a.php' | grep -v grep还有一种trick的方式是使用bracket expression,类似正则表达式的[]ps -ef f | grep [a].php[a]表示括号里面的字符任选其一,这里其实就是代表a,也就是grep a.php,但是实际上ps命令获得的grep命令参数是 grep [a].php,并不包含a.php这样一个字符串,可以避免grep命令自身被ps捕捉到

我的中国 2019-12-02 00:31:22 0 浏览量 回答数 0

回答

管道两侧的命令是同时执行的,并不是先执行前面一个,执行完毕后把输出交给后面的命令,所以ps的结果包含 grep "a.php"这条命令,这个命令本身就包含了a.php这个字符串所以即使没有a.php这个进程,你通过grep依然可以执行成功,进一步说,ps之后grep任何普通字符串都可以成功xelz@ubuntu: ~ [12:01:40]$ ps -ef | grep any_thing_you_want ; echo $?xelz 30076 29945 0 12:04 pts/0 00:00:00 grep --color=auto any_thing_you_want0解决办法你可以再grep一次,过滤掉 grep命令本身ps -ef f | grep 'a.php' | grep -v grep还有一种trick的方式是使用bracket expression,类似正则表达式的[]ps -ef f | grep [a].php[a]表示括号里面的字符任选其一,这里其实就是代表a,也就是grep a.php,但是实际上ps命令获得的grep命令参数是 grep [a].php,并不包含a.php这样一个字符串,可以避免grep命令自身被ps捕捉到

a123456678 2019-12-02 02:55:16 0 浏览量 回答数 0

问题

2017年7月训练总结

pandamonica 2019-12-01 20:22:08 1195 浏览量 回答数 1

回答

你的字符串怎么还带换行的?没看懂######你可以读取该字符串的长度,然后在适当的地方进行截取,截取后在添加字符串存入字符串数组就OK了###### $str =' name = abc age = 18 sex = 男'; $data=preg_split('/\r?\n/',$str); foreach($data as $v){ $k=split("=",trim($v)); if($k[0]!==''){ $arr[trim($k[0])]=trim($k[1]); } } print_r($arr); 我比较笨,,估计这样可以实现,不知道达不达标,没空测试。。。 ######直接 parse_ini ......######先把非=两侧的换行、空格替换成& 符号,然后用parse_str()即可

kun坤 2020-05-29 10:46:29 0 浏览量 回答数 0

回答

An OrderedDict将允许您维护订单,而set则不会。在我们将密钥写入新文件之后,我们可以将键值设置为空字符串以避免重写它。 from collections import OrderedDict keyword = { "shortkey":"longer sentence", "gm":"goodmorning", "etc":"etcetera" } with open('file.txt', 'r') as file: with open('newfile.txt', 'a') as newfile: lines = file.readlines() for line in lines: if 'shortkey="' in line: to_replace = line.split('"')[1].split() to_replace = OrderedDict.fromkeys(to_replace) for key in to_replace: if key in keyword: newfile.write(keyword[key] + ' ') keyword[key] = '' ['gm', 'gm', 'gm', 'etc', 'shortkey', 'novalue']拆分后,文件中的第一个样本行将生成。由于keyword.keys()以下几个原因,这不等于: gm在单词列表中重复多次,但只在dict中出现一次。(您可以通过将比较的两侧包装在a中set()来删除重复值来解决此问题。)novalue 在单词列表中但不在词典中。单词列表很可能与dict键的顺序不同。(同样,你可以通过使用来解决这个问题set(),因为集合是无序的。)你的意图是什么? 仅处理每个单词是dict键的行,每个单词键都在行中。仅处理每个单词都是dict键的行(如果dict有额外的未使用键,则可以。)仅处理包含所有dict键的行(如果该行具有不是dict键的额外单词,则可以)。处理所有行,如果有替换,则替换单词,否则使用原始单词。

一码平川MACHEL 2019-12-02 01:53:56 0 浏览量 回答数 0

回答

解决方案: 快速的方法 使用像phpmyadmin或drush命令sqlq 这样的工具来运行一个查询,该查询为相关列分配默认值。 在上面描述的情况下,修复问题的sql是: ALTER TABLE node MODIFY COLUMN users VARCHAR(255) NOT NULL DEFAULT '' 手动方法(45分钟至1.5小时) 1.将您的网站置于离线模式。 2.备份所有数据库和文件(重要)。 3.将Drupal(相同版本)安装到另一个新数据库。请勿卸载现有网站。 4.启用相同的模块(相同版本)。运行update.php。 5.打开phpMyAdmin并选择新的Drupal数据库。 6.打开phpMyAdmin并选择有故障的Drupal数据库。 7.选择一个表(新数据库和故障数据库中的相同名称)。 8.选择“结构”选项卡(两侧)。 9.比较“名称”和“默认”列。注意空白(在新数据库中)和'无'(在故障数据库中)。 10.如果您看到“默认”值有任何差异,请选择故障数据库上的“更改”(铅笔图标)。如果没有差异,请继续执行步骤7或14。 11.在“默认”下,选择“按定义:”。 12.选择“保存”。 13.重复步骤9到12,直到“默认”值相同。 14.重复步骤7到13,直到所有表中的所有“默认”值都相同。 15.将您的网站置于在线模式。 16.确保您的网站运行正常。 17.删除步骤3中完成的安装。

搞么罗 2019-12-02 01:17:51 0 浏览量 回答数 0

回答

2.3 电缆敷设工程量清单编制与计价 2.3.2定额的应用 2.3.2.1定额工程量计算规则 1)直埋电缆的挖填土(石)方:1~2根电缆 0.45m3/m,每增1根增加 0.153m3/m。 2)电缆沟盖板揭、盖工程量,按每揭或每盖一次以"延长米"计算,如又揭又盖,则按两次计算。 3)电缆保护管的长度 (A)横穿道路,按路基宽度两端各增加2m。 (B)垂直敷设时,管口距地面增加2m。 (C)穿过建筑物外墙时,按基础外缘以外增加1m。 (D)穿过排水沟时,按沟壁外缘以外增加1m。 4)电缆保护管埋地敷设 (图无标注一般按沟深0.9m宽保护管两侧边缘各加0.3m) 5)电缆敷设按单根计算长度 6)电缆敷设长度计算及规定附加长度 ①电缆敷设弛度、波形弯度、交叉:2.5%全 ②电费进入建筑物:2.0m ③电缆进入沟内或吊架时引上(下)预留1.5m ④变电所进线、出线1.5m ⑤电力电缆终端头1.5m ⑥高压开关柜及低压配电盘、箱2.0m 7)电缆头、中间头均以“个”计算 (一般按实计算,或按平均250m一个中间头) 8)桥架按“m”计算 9)钢索的计算长度 (不扣除拉紧装置的长度) 2.3.2.2 应用定额注意事项 1)特殊区域电缆敷设 (其定额人工*1.3系数、该地段所需施工材料按实另计) 2)电缆敷设定额按三芯考虑(包括三芯连地)五芯以上考虑系数。 3)电力缆头按铝芯电缆计算。 (铜芯定额乘以系数1.2、双屏蔽电缆头制作安装人工系数1.05) 4)钢制桥架主结构厚度大于3mm定额人工机械系数乘以1.2 不锈钢桥架定额人工机械系数1.1 5)直径在100以下电缆保护管使用第二册配管配线定额 6)电缆敷设未包括内容 隔热、保护层、冬季施工加温、其它特殊条件施工、吊电缆的钢索及拉紧装置。 2.3.2.3定额工程量计算方法 电缆长度=水平+垂直+预留+2.5%(弛度、波形弯度、交叉系数。)

马铭芳 2019-12-02 01:21:37 0 浏览量 回答数 0

回答

支持,MaxCompute支持SQL标准的CTE,提高SQL语句的可读性与执行效率。以下是具体语法: COMMON TABLE EXPRESSION(CTE) MaxCompute支持SQL标准的CTE,提高SQL语句的可读性与执行效率。 命令格式 WITH cte_name AS ( cte_query ) [,cte_name2 AS ( cte_query2 ) ,……] 参数说明 cte_name:CTE的名称,不能与当前WITH子句中的其他CTE的名称相同。查询中任何使用到cte_name标识符的地方,均指CTE。cte_query:一个SELECT语句。它产生的结果集用于填充CTE。 示例 INSERT OVERWRITE TABLE srcp PARTITION (p='abc') SELECT * FROM ( SELECT a.key, b.value FROM ( SELECT * FROM src WHERE key IS NOT NULL ) a JOIN ( SELECT * FROM src2 WHERE value > 0 ) b ON a.key = b.key ) c UNION ALL SELECT * FROM ( SELECT a.key, b.value FROM ( SELECT * FROM src WHERE key IS NOT NULL ) a LEFT OUTER JOIN ( SELECT * FROM src3 WHERE value > 0 ) b ON a.key = b.key AND b.key IS NOT NULL )d; 顶层的UNION两侧各为一个JOIN,JOIN的左表是相同的查询。通过写子查询的方式,只能重复这段代码。 使用CTE的方式重写以上语句。 with a as (select * from src where key is not null), b as (select * from src2 where value>0), c as (select * from src3 where value>0), d as (select a.key,b.value from a join b on a.key=b.key), e as (select a.key,c.value from a left outer join c on a.key=c.key and c.key is not null) insert overwrite table srcp partition (p='abc') select * from d union all select * from e; 重写后,a对应的子查询只需写一次,便可在后面进行重用。您可以在CTE的WITH子句中指定多个子查询,像使用变量一样在整个语句中反复重用。除重用外,不必反复嵌套。

问问小秘 2020-06-04 13:25:33 0 浏览量 回答数 0

回答

背景信息 故障排查步骤如下: 排查路由问题。 排查第3/4层(网络/传输)问题。 排查第2层(数据链路)问题。 排查第1层(物理)问题。 排查路由问题 本地接入设备能ping通云上边界路由器网关VBR的IP,并且已建立了BGP对等会话,如果您的本地服务器依然无法ping通云上VPC的ECS实例,请通过以下步骤排查该问题: 若您使用高速通道-对等连接产品连通云上和云下,请检查高速通道VBR上连的健康检查状态。 若您使用云企业网CEN连通云上和云下,请检查CEN的VBR的健康检查状态。 如果路由模式是BGP,请确保本地网关已通过BGP对您的本地网段进行宣告。 请确保您或您的提供商BGP路由宣告没有超过110条路由条目,超出后路由条目会丢弃,BGP Peer连接仍然可以建立。 请确保您的本地网关路由表中具有指向云上VPC的路由,下一跳为云上VBR的IP。 请确保您的VBR路由表具有指向本地网段的路由,下一跳为专线接口。 请确保您的VBR路由表具有指向云上VPC的路由,下一跳为VPC的实例ID。 请确保您的VPC路由表具有指向本地网段的路由,下一跳为VBR。 请确保您的ECS安全组和网络ACL针对您的本地网络设置了允许入站和出站流量。 如果上述步骤未解决您的路由问题,请提交工单咨询。 排查第3/4层(网络/传输)问题 本地接入设备能够ping通云上边界路由器网关VBR的IP,但本地BGP对等会话无法建立,请通过以下步骤排查该问题: 请确保您的BGP已正确配置本地自治系统编号(ASN)和阿里云的ASN。 请确保已正确配置BGP对等会话两端的对等IP。 请确保已配置您的MD5身份验证密钥,并且与下载的路由器配置文件中的密钥完全匹配。 说明 注意检查是否有多余的空格或字符。 请确保没有限制TCP端口179或临时TCP端口超过1024的防火墙和ACL规则。这些端口对于BGP在对等项之间建立TCP连接是必需的。 检查您的BGP日志中是否有任何错误或警告消息。 如果上述步骤未建立 BGP 对等会话,请提交工单咨询。 排查第2层(数据链路)问题 本地IDC机房接入设备的指示灯正常,但接入设备无法ping通云上边界路由器VBR的IP,请通过以下步骤排查该问题: 请检查是否已正确配置您的互联 IP地址,确保互联IP地址在同一个网段,并且位于正确的VLAN 中。 请确保在VLAN子接口而不是物理接口(例如,是GigabitEthernet0/0.123而不是GigabitEthernet0/0)中配置了互联IP地址。 请验证路由器是否具有来自您的地址解析协议 (ARP)表中云上VBR节点的MAC地址条目。 请确保云上VBR和本地IDC接入设备之间的任何设备都已针对您的802.1Q VLAN标签启用了VLAN中继。 请清除您或您的提供商的 ARP 表缓存。 如果上述步骤未建立ARP或您仍无法对云上VBR执行ping 操作,请提交工单咨询。 排查第1层(物理)问题 本地专线接入设备的指示灯不亮,请使用以下步骤排查该问题: 检查本地IDC的CPE接入设备是否已打开,端口是否已激活。 请向您的专线供应商确认专线是否已经完成端到端的接入,并要求专线供应商为您提供专线施工完成证明和端到端的网络连通性测试证明。 请检查专线两端的光模块是否正常。 请检查光模块参数支持的公里数是否一致,如果两侧不一致,端口指示灯不会亮起。 检查光模块参数支持的带宽规格是否一致,如果两侧不一致,端口指示灯不会亮起。 光纤接入时,您必须使用适用于1GB以太网的1000Base-LX、适用于10GB以太网的10GBase-LR、适用于40GB以太网的40GBase-LR或者适用于100GB以太网的100GBase-LR的单模光模块与阿里云的接入设备对接,同时两端的光模块参数需要一致。 检查本地CPE是否已禁用自动协商功能并且已手动配置端口速度和全双工模式。 市场上大部分的网络设备,例如Juneper,设置了自动协商,请手动禁用该功能。 联系线路供应商完成专线分段检测。 自主联系线路供应商或本地IDC机房供应商,进行本地IDC的ODF到本地接入设备之间的楼内线缆测试,若需要环路测试,请您配合供应商在本地IDC进行光环打环。 自主联系线路供应商,进行本地IDC到专线运营商接入设备链路的测试,若需要环路测试,请您配合运营商在本地IDC进行光环打环。 线路供应商联系运营商完成运用上的内部网络链路测试。 自主联系线路供应商,进行阿里接入点所在机房从ODF到阿里接入设备之间的楼内线缆测试。 阿里侧尾纤线缆的测试,请提交工单。 便于您对专线分段管理的理解,传统专线互联的网络拓扑如下图所示,实际拓扑请咨询运营商。

保持可爱mmm 2020-03-29 11:30:59 0 浏览量 回答数 0

回答

在 SQL Server 中,WHERE 子句的表达式先后顺序没有影响。根据运算符的优先级进行运算,相同优先级的运算符两侧的表达式根据评估的代价多寡来运算,先运算代价小的,后运算代价大的。 如果楼主(或楼主所在的项目)对性能比较敏感,可以通过优化查询策略(如利用索引等)来「引导」Sql Server 的优化器先运算代价小的、后运算代价大的表达式。 All-At-Once Operation(同时操作)概念SQL 支持这种概念,这意味着统一逻辑查询处理阶段中出现的所有表达式都是同时进行计算的。这一块我们可以分别讲讲 SELECT 子句和 WHERE 子句。 SELECT 子句以下代码是错误的: SELECT orderid, YEAR(orderdate) AS orderyear, orderyear + 1 AS nextyearFROM [DemoDb].dbo.[Orders]原因是:由于 SELECT 子句中所有列名逻辑上没有先后顺序的,所有表达式都是在同一时刻进行的 WHERE 子句接下来就是回应本回复最早前那句话的问题了,关于 WHERE 子句,我们首先来看这么一个例子: SELECT col1, col2FROM [DemoDb].dbo.[T1]WHERE col1 <> 0 AND col2 / col1 > 2假设楼主想找 col2 / col1 值大于 2 的所有 col1 和 col2 集,但又担心除数为零出现错误,所以在之前加上了 col1 <> 0。问题在于,这是否有用? 假设咱们的数据库足够机智,通过「短路求值」的原则来执行,放 col1 为 0 时不再去判断 col2 / col1 > 2,那么貌似不会出错,但是…… 我们不能忘记 All-At-Once Operation 这个概念,这个概念被写进了 ANSI SQL 中,所以微软对 ANSI SQL 的实现(Microsoft SQL Server)可以按照它喜欢的任意顺序来自由处理 WHERE 子句中的表达式(其中包括自由选择支持「短路求值」),这种选择的「喜好」的唯一依据是性能,或者说代价,也就是说先计算需要付出较小代价的表达式,然后计算较大代价的表达式。如果 SQL Server 决定先计算 col2 / col1 > 2 这个表达式,那么可能会因为除数为零而出现错误,进而查询失败。 总结楼主不必关心 WHERE 子句的表达式先后顺序是否会对查询性能产生影响,优化器会根据评估自动对其进行先后运算,其依据是运算符的优先级和评估的性能代价。 楼主可以尝试通过建立索引以减少对 IO 的需要,以此来提高性能。同时决定性能的要素很多,包括你的表的设计、硬件、网络等,更加具体的信息建议楼主阅读 《Microsoft SQL Server 2008 技术内幕:T-SQL 查询》,能系统地了解性能相关的信息。

a123456678 2019-12-02 03:02:24 0 浏览量 回答数 0

回答

纯CSS实现圆角框是一件大家都说烂了的事件,我也写过两篇总结文章,为什么还会有这篇文章呢,事情是这样的。在我们的以前的项目中,实现圆角框往往是用背景图片来实现的,但是,当这些项目发布上线后,在维护过程中,有时需要添加一些新的需求,因为以前的项目中大量采用了圆角图片,并且这些图片全部采用了CSS sprites方式合并的图,为了不增加更多的额外工作,并且也不想用JS来添加更多的http请求,所以需要一些简单的CSS方案来解决这个问题。而我的个人爱好,也喜欢采用无图片的方式来处理这些效果。总觉得CSS能完成的工作,为什么不让它来实现呢? 实现原理: 纯CSS方式实现圆角框的原理在网络上已经有很多人详细解说了,下面这个示意图是我将其中的一个圆角进行放大后的效果。图一 从上面效果图中我们可以看到其实这种圆角框是靠一个个容器堆砌而成的,每一个容器的宽度不同,这个宽度是由margin外边距来实现的,如:margin:0 5px;就是左右两侧的外边距5像素,从上到下有5条线,其外边距分别为5px,3px,2px,1px,依次递减。因此根据这个原理我们可以实现简单的html结构和样式。 1、Html结构层: 代码 1<div class="sharp color1"> 2 <b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b> 3 <div class="content">文字内容</div> 4 </div> 5 <b class="b5"></b><b class="b6"></b><b class="b7"></b><b class="b8"></b> 6</div> b1~b4构成上面的左右两个圆角结构体,而b5~b8则构建了下面左右两个圆角结构体。而content则是内容主体,将这些全部放在一个大的容器中,并给它的一个类名sharp,用来设置通用的样式。再给它叠加了一个color1类名,这个类名用来区别不同的颜色方案,因为可能会有不同颜色的圆角框。 2、CSS样式: 代码 1.b1,.b2,.b3,.b4,.b5,.b6,.b7,.b8{height:1px; font-size:1px; overflow:hidden; display:block;} 2.b1,.b8{margin:0 5px;} 3.b2,.b7{margin:0 3px;border-right:2px solid; border-left:2px solid;} 4.b3,.b6{margin:0 2px;border-right:1px solid; border-left:1px solid;} 5.b4,.b5{margin:0 1px;border-right:1px solid; border-left:1px solid; height:2px;} 将每个b标签都设置为块状结构,并定义其高度为1像素,超出部分溢出隐藏。从上面样式中我们已经看到margin值的设置,是从大到小减少的。而b1和b8的设置是一样,已经将它们合并在一起了,同样的原理,b2和b7、b3和b6、b4和b5都是一样的设置。这是因为上面两个圆和下面的两个圆是一样,只是顺序是相对的,所以将它合并设置在一起。有利于减少CSS样式代码的字符大小。后面三句和第二句有点不同的地方是多设置了左右边框的样式,但是在这儿并没有设置边框的颜色,这是为什么呢,因为这个边框颜色是我们需要适时变化,所以将它们分离出来,在下面的代码中单独定义。 接下我们设置内容区的样式: 代码 .content {border-right:1px solid;border-left:1px solid;overflow:hidden;} 也是只设置左右边框线,但是不设置颜色值,它和上面八个b标签一起构成圆角框的外边框轮廓。 往往在一个页面中存在多个圆角框,而每个圆角框有可能其边框颜色各不相同,有没有可能针对不同的设计制作不同的换肤方案呢,答案是有的。在我的这个应用中,可以换不同的皮肤颜色,并且设置颜色方案也并不是一件很难的事情。下面看看我是如何将它们应用到不同的颜色的。 在上面的样式设计中,我已经给颜色方案留下了可以扩展的空间。我将所有的涉及到边框色的类名全部集中在一起,用群选择符给它们设置一个边框的颜色就可以了。如下所示: 代码 1.color1 .b2,.color1 .b3,.color1 .b4,.color1 .b5,.color1 .b6,.color1 .b7,.color1 .content{border-color:#96C2F1;} 2.color1 .b1,.color1 .b8{background:#96C2F1;} 注意:需要将这两句的颜色值设置为一样的,第二句中虽说是设置的background背景色,但它同样是上下边框线的颜色,这一点一定要记住。因为b1和b8并没有设置border,但它的高度值为1px,所以用它的背景色就达到了模拟上下边框的颜色了。 现在已经将一个圆角框描述出来了,但是有一个问题要注意,就是内容区的背景色,因为这儿是存载文字主体的地方。所以还需要加入下面这句话,也是群集选择符来设置圆角内的所有背景色。 代码 .color1 .b2,.color1 .b3,.color1 .b4,.color1 .b5,.color1 .b6,.color1 .b7,.color1 .content{background:#EFF7FF;} 这儿除了b1和b8外,其它的标签都包含进来了,并且包括content容器,将它们的背景色全部设置一个颜色,这样除了线框外的所有地方都成为一种颜色了。在这儿我也用到包含选择符,给它们都加了一个color1,这是颜色方案1的类名,依照这个原理可以设置不同的换肤方案。 好了,我们将上面的所有代码集中起来,就完成一个纯CSS圆角框的实例模型,在源码中,我设置了六套颜色方案,其它的颜色方案就看你的了。 下面是源码演示后的截图:

杨冬芳 2019-12-02 02:31:01 0 浏览量 回答数 0

问题

分布式系统 CAP 定理 P 代表什么含义【Java问答学堂】55期

剑曼红尘 2020-07-10 14:49:59 12 浏览量 回答数 1

回答

不良的编程习惯TOP1:粘贴复制 在学生时代,我们都知道抄袭是不对的。但在工作中,这方面的规则还很模糊。虽然有些代码块是不能盗用的——不要把专有代码拷贝到你的堆栈中,尤其是这些代码有标记版权信息。这种时候你应该编写自己的版本,老板付你薪水就是要做正事的。 但是当原始创作者想要共享代码时,问题就变得复杂了。这些共享代码也许放到了某个在线编程论坛上,也许它们是带有许可证(BSD,MIT)的开放源代码,允许使用一到三个函数。你使用这些共享代码是没有问题的,而且你上班是为了解决问题,而不是重新发明轮子。 大多数情况下,复制代码的优势非常明显,小心对待的话问题也不大。至少那些从靠谱的来源获得的代码已经被大致“检查“过了。 问题的复杂之处在于,这些共享代码是否存在一些未发现的错误,代码的用途或底层数据是否存在一些特别的假设。也许你的代码混入了空指针,而原始代码从未检查过。如果你能解决这些问题,那么就可以理解为你的老板得到了两位程序员共同努力的成果。这就是某种形式的结对编程,而且用不着什么高大上的办公桌。 不良的编程习惯TOP2:非函数式代码 在过去十年间,函数范式愈加流行。喜欢用嵌套函数调用来构建程序的人们引用了很多研究成果。这些研究表明,与旧式的变量和循环相比,函数式编程代码更安全,错误更少,而且可以随程序员的喜好任意组合在一起。粉丝们十分追捧函数式编程,还会在代码审查和拉取请求中诋毁非函数式方法。关于这种方法的优势,他们的观点其实并没有错。 但有时你需要的仅仅是一卷胶带而已。精心设计并细心计划的代码需要花费很多时间,不仅需要花费时间想象,还需要构建和之后导航的时间。这些都增加了复杂性,并且会花费很多的时间与精力。开发漂亮的函数式代码需要提前做计划,还要确保所有数据都通过正确的途径传递。有时找出并更改变量会简单得多,可能再加个注释说明一下就够了。就算要在注释中为之后的程序员致以冗长而难懂的歉意,也比重新设计整个系统,把它扳回正轨上要省事得多。 不良的编程习惯第 3 位:非标准间距 软件中的大多数空格都不会影响程序的性能。除少数使用间距指示代码块的语言(如 Python)外,大多数空格对程序行为的影响为零。尽管如此,仍然有一些得了强迫症的程序员会数空格,并坚持认为它们很重要。曾有这样一位程序员以最严肃的口吻告诉我的老板,说我正在写“非标准代码”,还说他一眼就看出来了。我的错咯?因为我没在等号的两侧放置空格,违反了 ESLint space-infix-ops 规则[1]。 有时候你只要操心那些更深层的内容就行了,谁管什么空格的位置。也许你担心数据库过载,也许你担心空指针可能会让你的代码崩溃。一套代码中,几乎所有的部分都比空格更重要,就算那些喜欢走形式的标准委员会写出来一大堆规则来限制这些空格或制表符的位置,那又如何呢。 令人欣喜的是,网上可以找到一些很好用的工具来自动重新格式化你的代码,让你的代码遵守所有精心定义的 linting 规则。人类不应该在这种事情上浪费时间和脑细胞。如果这些规则这么重要,我们就应该用工具来解决这些问题。 不良的编程习惯第 4 位:使用 goto 禁止使用 goto 的规则可以追溯到许多结构化编程工具还没有出现的时代。如果程序员想创建一个循环或跳转到另一个例程,则需要键入 goto,后跟一个行号。多年之后,编译器团队开始允许程序员使用字符串标签来代替行号。这在当时被认为是一项热门的新特性。 有的人把这样做法的结果称为“意大利面条式代码”。因为以后没人能读懂你的代码,没人搞得清楚执行路径。成为一团混乱的线程,缠结在一起。Edsger Dijkstra 写过一篇题为“我们认为 goto 声明是有害的”的一篇文章[2],号召大家拒绝使用这个命令。 但是绝对分支并不是问题所在,问题在于它产生的那堆纠缠的结果。一般来说,精心设计的 break 或 return 能提供有关该位置的代码执行情况的非常清晰的陈述。有时,将 goto 添加到一个 case 语句中所生成的东西与联 if-then-else 块的相比,结构更正确的列表理解起来更容易。 也有反例。苹果 SSL 堆栈中的“goto fail”安全漏洞[3]就是一个很好的例子。但是,如果我们谨慎地避免 case 语句和循环中出现的一些问题,我们就可以插入很好用的绝对跳转,使代码读者更容易理解正在发生的事情。有时我们可以放一个 break 或 return,不仅更简洁,而且大家读起来更愉快,除了那些讨厌 goto 的人们。 不良的编程习惯第 5 位:不声明类型 热爱类型化语言的人们有他们的理由。当我们为每个变量的数据类型添加清晰的声明时,我们会编写更好,错误更少的代码。花点时间来阐明类型,就可以帮助编译器在代码开始运行之前标记出愚蠢的错误。这可能会很痛苦,但也会有回报。这是一种编程的笨办法,就是为了避免错误。 时代变了。许多较新的编译器已经足够聪明了,它们可以在查看代码时推断出类型。它们可以在代码中前后移动,最后确认变量应该是 string 或 int,抑或是其他类型。而且,如果推断出来的这些类型没法对齐,则编译器会给出错误标志。它们不需要我们再类型化变量了。 换句话说,我们可以省略一些最简单的声明,然后就能轻松节省一些时间了。代码变得更简洁,代码读者也往往能猜出 for 循环中名为 i 的变量是一个整数。 不良的编程习惯第 6 位:溜溜球代码 程序员喜欢将其称为“yo-yo 代码”。首先,这些值将存储为字符串,然后将它们解析为整数,接下来将它们转换回字符串。这种方法效率极低。你几乎能感受到一大堆额外负载让 CPU 不堪重负的样子。能快速编写代码的聪明程序员会调整自己的代码架构,以最大程度地减少转换。因为他们安排好了计划,他们的代码也能跑得更快。 但不管你信不信,有时溜溜球代码也是有意义的。有的时候,你需要用一个可以在自己的黑匣子里搞定一大堆智能操作的库。有的老板花了很多钱,请好多天才做出来这么一个库。如果这个库需要字符串形式的数据,那么你就得给它字符串,就算你最近刚把数据转换为整数也得再转回去。 当然,你可以重写所有代码以最大程度地减少转换,但这会花费一些时间。有时,代码多运行一分钟、一小时、一天甚至一周也是可以接受的,因为重写代码会花费更多时间。有时候,增加技术债务要比重新建立一笔技术债的成本更低些。 有时这种库里面不是专有代码,而是你很久以前编写的代码。有时,转换一次数据要比重写该库中的所有内容更省事。这种时候你就可以编写悠悠球代码了,不要怕,我们都遇到过这种事情。 不良的编程习惯第7位:编写自己的数据结构 有一条标准规则是,程序员在大二学完数据结构课程后,再也不要编写用于存储数据的代码了。已经有人编写过了我们所需要的所有数据结构,并且他们的代码经过了多年的测试和重新测试。这些结构与语言打包在一起,还可能是免费的。你自己写的代码只会是一堆错误。 但有的时候数据结构库的速度有点缓慢。有时候我们被迫使用的标准结构并不适合我们自己的代码。有时,库会要求我们在使用它的结构之前重新配置数据。有时,这些库带有笨重的保护,还有一些诸如线程锁定之类的特性,而我们的代码并不需要它们。 发生这种情况时就该编写我们自己的数据结构了。有时我们自己的结构会快很多,还可能让我们的代码更整洁,因为我们不需要一大堆额外的代码来重新精确地格式化数据。 不良的编程习惯第 8 位:老式循环 很久以前,创建 C 语言的某人想将所有抽象可能性封装在一个简单的构造中。这个构造开始时要做一些事情,每次循环都要做一些事情,所有事情都完成时还有一些方法来提示我们。当时,这似乎是一种拥有无限可能性的完美语法。 此一时彼一时,如今一些现代评论者只看到了其中的麻烦,发生的事情太多了,所有这些可能性既可能向善也可能作恶。这种构造让阅读和理解代码变得非常困难。他们喜欢更加函数式的的范式,其中没有循环,只有应用到列表的函数,还有映射到某些数据的计算模板。 有时无循环方法更简洁,尤其是当我们只有一个简单的函数和一个数组的时候。但还有些时候,老式的循环要简单得多,因为它可以做更多事情。例如,当你找到第一个匹配项后就立刻停止搜索,这样的代码就简单得多。 此外,要对数据执行多项操作时,映射函数会要求更严格的编码。假设你要对每个数字取绝对值,然后取平方根,最快的方案是先映射第一个函数,然后映射第二个函数,将数据循环两次。 不良的编程习惯第 9 位:在中间打破循环 从有一天开始,一个规则制定小组宣布每个循环都应该有一个“不变项”,就是一个在整个循环中都为真的逻辑语句。当不变量不再为真时,循环就结束了。这是处理复杂循环的好方法,但会带来一些令人抓狂的约束,例如禁止我们在循环中间使用 return 或 break。这条规则是禁止 goto 语句规则的子集。 这个理论很不错,但它通常会导致代码变得更复杂。考虑以下这种简单的情况,其中会扫描一个数组,找出通过测试的一个条目: while (i<a.length){ ... if (test(a[i]) then return a[i]; ... } 喜欢循环不变项的人们宁愿我们添加另一个布尔变量,将其称为 notFound,然后这样用它: while ((notFound) && (i<a.length){ ... if (test(a[i])) then notFound=false; ... } 如果这个布尔名称取得很合适,那就会是一段自我注释得很好的代码。它可以让大家理解起来更容易。但这也增加了复杂性。这还意味着要分配另一个局部变量并阻塞一个寄存器,编译器可能没那么聪明,没法修复这个错误。 有时使用 goto 或 jump 会更简洁。 不良的编程习惯第10位:重载运算符和函数 一些有趣的语言会让你绕一些大弯子,比如说重新定义看起来应该是常量的元素值。拿 Python 来说,至少在 2.7 版及更低版本中,它允许你键入 TRUE=FALSE。这不会引发某种逻辑崩溃,也不会导致宇宙的终结;它只是交换了 TRUE 和 FALSE 的含义。你还可以使用 C 预处理器和其他一些语言来玩这种危险的游戏。还有一些语言允许你重新定义加号之类的运算符。 有时候,在一大段代码中重新定义一个或一些所谓常量,结果效率会更高。有时,老板会希望代码执行完全不同的操作。当然,你可以检查代码,逐一更改对应的部分,也可以干脆重新定义现实来节省时间。别人会觉得你是天才。用不着重写庞大的库,只需翻转一下即可。 这里也许应该划一条底线。无论这种做法多有意思,看起来多聪明,你都不应该在家里做实验。这太危险了——我是认真的。

茶什i 2019-12-30 11:01:01 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 SSL证书 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 2020中国云原生 阿里云云栖号