当前位置:首页 > css
  • 基于CSS技术的室内定位通信系统的研究与实现

    无线定位技术近年来在工业和研究领域受到了极大的关注,高精度的定位服务在移动通信、智能交通和医疗等领域都具有广泛的应用前景。目前使用最广的是 GPS定位系统,其在室外环境下具有很突出的性能,能为飞机、船舶和车辆等目标提供精确的定位信息和导航服务。但是GPS系统的定位信号无法穿透建筑物, 不能完成对室内目标的定位[1]。针对无线定位领域,IEEE802.15.4a定义了两种可实现高精度定位的物理层——脉冲超宽带和Chirp扩频 (CSS)[2-3]。Chirp信号又称线性调频信号,最先应用在雷达领域,随着声表面波(SAW)器件发展,其扫频带宽不断增大,已经具有了一般超宽 带信号的特点。Chirp扩频信号具有时间分辨率高、抗多径能力强、传输速率高、功耗低和系统复杂度低等特点,非常适合用于室内目标定位[4-6]。 本文设计了基于Chirp扩频信号的室内定位通信系统,在利用Chirp扩频信号实现数据通信的基础上,使用双边双向测距算法SDS- TWR(Symmetric Double Sided Two-Way Ranging)测量端点间的距离[7],计算出标签点位置信息,并针对多标签点同时定位情况下产生的冲突问题,设计了一套多标签点情况下的系统管理算 法,对系统进行有效管理。 1 系统模型 本文是基于多移动标签点情况下的定位方案,其系统的结构如图1所示。系统的组成包括4个固定锚节点(Anchor1、Anchor2、Anchor3和 Anchor4)、多个移动标签点(Tag1、Tag2及Tag3等)和定位服务器。4个锚节点固定在定位服务区域的4个固定坐标点上,定位区域内的移动 标签点处于对等关系,可以进行定位及相互间的数据通信。该系统使用一种改进的TOA测距算法——对称双边双向测距算法(SDS-TWR),利用该算法不需 要标签点和锚节点的时钟同步的优点,降低系统的实现难度[8]。系统工作时,当有移动标签点需要定位时,系统标签点依次向各个固定锚节点发出测距信号,固 定锚节点收到测距信号后,根据SDS-TWR算法产生相应的应答信号,与移动标签点完成测距。移动标签点分别与4个固定锚节点完成测距后,将距离信息通过 USB接口送入与其连接的定位服务器。由于各固定锚节点的坐标已知,定位服务器可以通过LLOP算法计算出移动标签的坐标,并进行显示。 2 硬件设计 目前,Chirp信号的调制与解调主要使用声表面波器件(SAW)完成,单独设计并完成一套Chirp信号发射机和接收机较为复杂,成本较高,并且不利 于硬件的集成化。本系统选用nanoPAN 5375射频收发模来完成基本的Chirp通信功能。nanoPAN 5375射频收发模块由德国nanotron公司生产,采用Chirp扩频技术,扩频带宽达到80 MHz,工作在2.4 GHz ISM频段,最高数据传输速率高达2 Mb/s。此外,其内部包含高精度的实时时钟和定时器,利于SDS-TWR测距算法的实现。nanoPAN 5375射频收发模内部完成了对射频信号的产生与处理,只需要通过SPI接口对其内部寄存器进行操作。系统的硬件结构可以分为移动标签点和锚节点两部分。 2.1 锚节点硬件设计 锚节点的硬件主要基于Atmega128 8 bit单片机和nanoPAN 5375射频收发模块。Atmega128属于AVR系列,具有低功耗、操作简单等特点,并且自带完整的SPI接口控制器,可以作为主机和从设备使用,能 够胜任锚节点中对nanoPAN 5375射频模块的控制及数据收发工作。nanoPAN 5375射频模块的ANT脚通过一条阻抗为50 ?赘的微带线与2.4 GHz天线连接,微带线的阻抗误差会对发射信号的功率产生影响。锚节点硬件结构框图如图2所示。  模拟信号的调制、解调和放大等处理都由nanoPAN 5375模块完成,并通过2.4 GHz天线进行收发。JTAG接口和RS232接口则用于系统的调试。Atmega128单片机通过SPI总线和几个控制端口对模块进行控制。 Atmega128单片机与nanoPAN 5375射频模块的连接如图3所示。SPICLK、SPIRXD、SPITXD、SPISSN分别为SPI总线的时钟、数据接收、数据发送和片选端口。通 过PONRESET引脚对模块进行复位,模块初始化前应通过该引脚对模块进行复位操作。UCIRQ和UCRESET分别为单片机中断和复位引脚。     3 系统软件设计  系统软件分为标签点/锚节点软件和定位服务器软件两部分。标签/锚节点软件完成SPI接口驱动、测距算法、测距结果返回和系统管理算法;定位服务器软件完成与标签点的接口驱动、数据处理计算和用户界面。 nanoPAN 5375模块的SPI接口的最高数据传输速率为16 Mb/s,接口的时序及数据模式可以通过寄存器进行设置。Atmega128和STM32F103处理器带有标准的SPI接口控制器,将它配置成主机模 式,数据格式设置为8 bit、大端模式,数据速率小于16 Mb/s。向nanoPAN 5375模块的0x00地址写入0x42,将模块的SPI接口设置成相同的模式。 对nanoPAN 5375模块的控制程序主要包括ntrxinit.c、ntrxiqpar.c、ntrxdil.c和ntrxutil.c,它们的关系如图6所示。 ntrxinit.c和ntrxiqpar.c完成对模块硬件的初始化,包括寄存器、硬件接口、扩频带宽和传输速率的设定,本系统将带宽设置为80 MHz,数据传输速率设置为最高的2 Mb/s。ntrxdil.c完成数据的接收与发送、定位算法和中断响应等功能的具体实现函数。ntrxutil.c则封装了大量与模块操作相关的共用函 数,方便各模块的调用。  本系统使用的是对称双边双向测距算法,它相当于在被定义的时间内进行了两次TOA测量。TOA测距通过测量信号在两端点间的传输时间来测量距离,因此对 时间精度有着严格的要求,这意味着在两次TOA测量的过程中不允许发生因数据碰撞而引起的重传。这在单标签点的情况下是很容易实现的,但是在多标签点的环 境下就完全不同了。标签点必须进行统一的管理来避免碰撞的发生,且该管理算法必须保证整个系统的平等性与高效性。为了达到这一目标,设计了图8所示的定位 管理算法。     在系统内的众多标签节点中选择一个作为网络主协调控制器来控制标签节点和锚节点的时序。作为主协调控制器的标签节点周期性地发送广播包来发起空闲时隙的 竞争。每一个标签在收到广播信号后发送应答数据包竞争空闲时隙。作为主协调器的标签节点接收到应答信号后,根据竞争选举算法选出一个标签点,同时广播包含 选取结果的广播数据包。各标签点收到选举结果后返回确认信号,没有被选中的标签点进入等待状态,被选中的标签点和系统内的4个的锚节点分别进行测距。在被 选中的标签点完成测量之前,其余的标签点进入等待状态等待下一次的时隙。被选中的标签点完成测量后向作为主协调器的标签节点发送定位完成信号并进入等待模 式,主协调器标签点收到定位完成信号后,重新发起竞争。为了避免某个标签点被重复选取而造成的不平等,需要对标签点进行优先级管理。在编程中运用队列原 理,一个标签点完成定位后将其放入队尾,使其竞争优先级排到最低,从而避免重复分配造成的不平等。重复这些步骤直到所有的标签点完成测量。 定位服务器在系统中主要完成与标签点的接口驱动、数据处理计算和用户界面,通过USB接口接收标签点的距离数据,使用LLOP算法计算出移动标签的坐 标,并通过显示界面显示出标签点的相对位置信息。由于标签节点使用USB接口,具有很强的通用性,因此定位服务器可以为PC或其他的嵌入式系统。 4 定位结果分析 该系统的最大定位距离可以达到800 m,为了检验该系统的定位性能,分别将该系统在室内和室外两种环境下进行定位实验,定位结果如下。 4.1 室外环境定位 室外实验选用一个宽阔的球场,定位区域内无障碍物,4个锚节点放置在一个60 m×60 m的正方形区域的4个端点。将标签点放置在正方形区域内的多个已知坐标点上进行测量,部分定位结果如图9所示。 从图10可以看出,室内环境下的测量坐标和实际坐标有一定的误差,误差的大小也相差较大。在小于2 m的区域误差很大,这是由于在短距离条件下信号传播时间较短,干扰、时钟误差和定时器误差对测量结果的影响较大。大于2 m后的误差明显减小,有两个点的误差在20 cm以内,因此在中远距离情况下,该系统在室内环境下也具有较高的定位精度。 通过比较两种环境下的定位结果可以看出,在同为视距环境下,在室内定位精度与稳定性不如室外定位,这是因为室内环境受多径效应干扰更为严重。同时可以看 到,定位距离在3 m以上的中远距离定位的相对精度较高,这恰恰是实际室内定位应用中最常用的,因此,该系统具有较高的实用价值。 本文利用Chirp扩频信号抗干扰、抗多径能力强的特点,利用SDS-TWR测距算法,设计并实现了一个室内定位通信系统,并设计了一套系统管理算法实 现了对系统的管理,该系统在室外和室内都可以获得较高的定位精度。该系统结构简单,具有很强的通用性,可以作为单独的定位通信系统或者作为一个功能部件嵌 入到其他系统中,具有较广的应用前景。 参考文献 [1] 廖丁毅,王玫,郑霖,等.基于脉冲锁相环的超宽带定位接收机设计[J].桂林电子科技大学学报,2010,2(1):17-20. [2] KIM J E, KANG J, KIM D, et al. IEEE 802.15.4a CSS-based localization system for wireless sensor networks[C]. IEEE Interational Conference on Mobile Adhoc and Sevor Systems, 2007:1-3. [3] LEE C, KIN J Y. The positioning system based on IEEE 802.15.4a PHY and MAC protocol for low rate WPAN[C]. International Conference on Control, Automation and Systems, 2008:1462-1465. [4] WINKLER M. Chirp signals for communications[C]. Wescon Convention Record, 1962. [5] PINKNEY J. Low complexity indoor wireless data links using Chirp spread spectrum[D]. Calgary: Doctor Dissertation of the University of Calgary, 2003. [6] BUSH H, MARTIN A R,  COBB R F, et al. Application of Chirp SWD for spread spectrum communications[C]. Proceedings of the 1973 IEEE Ultrasonics Symposium, Monterey, IEEE Press, 1973:494-497. [7] KWAK M, CHONG J. A new double two-way ranging algorithm for ranging system[C]. IEEE International Conference on Network Infrastructure and Digital Content, 2010:470-473. [8] 刘林.无线定位基本概念与原理[J].学术动态,2007(4):11-17.

    时间:2012-09-03 关键词: 通信系统 室内定位 css

  • 腾讯零信任安全解决方案亮相CSS 开启企业安全新时代

    产业互联网时代,加强网络安全成为共识。在加速数字化转型的关键节点,政企网络安全建设面临更高要求。7月31日,在以“企业数字化转型,网络安全先行”为主题的第五届互联网安全领袖峰会(CSS 2019)大中型政企通用安全专场上,腾讯企业IT部安全运营中心总监蔡晨分享了基于“零信任”安全理念,为政企客户打造的腾讯无边界访问控制体系及其最佳应用实践。 云计算、大数据、人工智能等新技术在掀起数字化转型浪潮的同时,也改变了传统的网络边界,带来了全新的威胁风险,传统IT架构的边界防御模型在“效率”和“安全”上面临全面挑战。数据中心规模扩大、网络设备数量剧增、移动办公和企业上云,使得在基于边界的安全体系逐渐失效,由“零信任”安全打造的无边界网络已由纯概念向主流安全框架发展。政企的安全管理者需要重新审视安全防护模式,用新安全观建立网络安全体系。 腾讯早在2016年就在国内率先落地零信任安全架构,其无边界新一代企业网络,正是采用了“零信任”安全架构体系,腾讯零信任无边界终端安全解决方案,基于腾讯自身十多年丰富的网络安全管理实践与“零信任”理念,能够为政企网络建设解决人机关系和终端安全管理两大核心问题,打造效率更好、安全性更高的新一代无边界网络。 腾讯无边界访问控制系统iOA,凭借可信终端、可信身份、可信应用三大核心能力,将身份安全、终端安全与链路安全形成完整闭环,确保终端在任意网络环境中都可以安全、稳定、高效地访问企业资源及数据,为企业移动办公和应用上云打造统一、安全和高效的无边界网络访问入口。而腾讯御点的TAV杀毒引擎、百亿量级情报信息、大数据安全分析和智能修复引擎等技术,则能够有效防御终端的各类病毒木马攻击,帮助终端使用者全面掌握网络安全状况,保障内网终端设备安全。 近日,由腾讯牵头提案的“零信任安全技术-参考框架”行业标准正式通过中国通信标准化协会CCSA权威专家组评审并成功立项,代表着腾讯的零信任安全技术已达到指导性行业标准水平。 目前,腾讯无边界访问控制解决方案已在政务、医疗、交通、金融等多行业有成功实施经验,从保持安全性和合规性出发,聚焦网络访问人员身份管理和终端设备防护两大核心问题,在保障企业员工的体验的前提下,切实提升了安全运营效率。 产业升级,安全升维,腾讯将携手合作伙伴构建全方位、体系化的安全生态,帮助用户构建全方位、一站式的零信任安全体系,实现安全管理升级,为筑牢数字经济时代的安全防线,推动产业数字化、智能化升级贡献力量。

    时间:2019-09-04 关键词: 腾讯 企业安全 css

  • 帮助设计师和开发者的9种实用CSS技巧

    一个网页设计师脑子里一定会被大量与他的工作有关的知识填满。而说到CSS,它可以帮助对网站进行设计,让设计具有更多的可能性,用更简单的方式让你的网站更具吸引力,而使用传统的技术这些方面并不容易面面俱到。 对于前端,页面而言,CSS的确是一门首选需要掌握的技能。以下就是9种非常实用的CSS3属性和使用技巧。 1.  圆角效果 谈及圆角小编曾在各种讨论中频繁听见:实现麻烦、兼容困难、性能不佳等等缺点。而如今的Web设计需要的就是各种各样新的开发技巧,因此越来越多的前端和页面都开始使用HTML5。 对于HTML5而言,从前必须使用图片来实现的需求,现在都可以通过代码来实现。而CSS3中加入的“border-radius”就可以用通过它来直接定义HTML元素的圆角,并支持所有浏览器的最新版本。 我可以通过如下代码实现: 1 2 3 4 border-radius: 10px; /* CSS3 Property */ -moz-border-radius: 10px;  /* Firefox */ -webkit-border-radius: 10px; /* Chrome/Safari */ -khtml-border-radius: 10px; /* Linux browsers */ 我们也可以使用下面这样的组合版本,或者用它来对上面的代码进行速记。 1 -moz-border-radius: 10px 20px 30px 0; 2.  阴影效果 另一个CSS3可实现的有趣功能是阴影效果(box-shadow),通过“box-shadow”可以非常简单的实现该功能。我们常见的主流浏览器都支持这个属性,而Safari浏览器支持可选加前缀的-webkit-box-shadow属性。 代码包括: 1 2 3 4 5 #myDiv{ -moz-box-shadow: 20px 10px 7px #ccc; -webkit-box-shadow: 20px 10px 7px #ccc; box-shadow: 20px 10px 7px #ccc; } 而如下的JavaScript代码也能实现同样的阴影效果: 1 object.style.boxShadow="20px 10px 7px #ccc" 3.  @Media属性 @Media可以直接指定应用样式引入媒体属性,用于相同样式针对不同屏幕尺寸的网页风格变化, 它也有助于响应式网页设计中的造型变化。通过简单的修改如下代码就能实现。 1 2 3 @media screen and (max-width: 480px) { } 而使用如下的@media print甚至可以指定CSS的打印预览: 1 2 3 4 @media print { p.content { color: #ccc } } 4.  添加一个渐变填充 在CSS3中的渐变效果是另一个让人惊叹的属性。它目前还未得到全部浏览器的支持,因此最好不要完全依赖它来设置布局。而这里有一个基于CSS的梯度导航栏可以让大家参考一下。 以下是实现的方式。 1 background: -webkit-gradient(linear, left top, left bottom, from(darkGray), to(#7A7A7A)); 5.  背景尺寸 背景尺寸(Background size)是CSS3中最实用的效果之一,目前很多浏览器都已经支持。Background size属性可以让你随心所欲的控制背景图的尺寸大小。 从前用于背景的图像大小在样式中是不可调整的,如果你无法想象那样有多么糟糕,可以试着回忆一下,在自己的电脑桌面上做壁纸的时候遇到一张合乎心意却偏偏与桌面尺寸不合的图片,只能通过平铺来填充。 [!--empirenews.page--] 那样的桌面丑的让一个审美观及格的人都会有砸屏幕的冲动。而现在我们可以通过改变一行代码让背景图片适应自己的页面。 1 2 3 4 5 6 div { background:url(bg.jpg); background-size:800px 600px; background-repeat:no-repeat; } 6  @font face 属性在使用CSS3针对各种字体进行转变的时候已经充分证明了它的实用性。从前因为各种字体许可的问题,在设计过程中只能选择几种特定的字体。而通过@font face我们就能自定义字体的名称: 1 2 3 4 5 6 7 @font-face { font-family: mySmashingFont; src: url('blitz.ttf') ,url('blitz.eot'); /* IE9 */ } 而后我们能通过一个简单的代码,随时随地的使用自定义的mySmashingFont字体系列 1 2 3 4 div { font-family:mySmashingFont; } 7.  clearfix属性 如果Overflow: hidden清除浮动的效果实在不是你的首选,那么clearfix应该是你更好的选择,它可以让你个别处理不同的HTML元素。 1 2 3 .clearfix { display: inline-block; }   1 2 3 4 5 6 7 8 .clearfix:after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; } 8.  Margin: 0 auto Margin: 0 auto实现的是CSS中最基础的功能,我们常常也会用它来实现最简单也最常用的功能—居中。虽然CSS本身没有一个指定居中的功能,但是通过auto margin指定一个边距仍然能非常简单的就实现居中这个功能。 通过这个属性,用一段简单的代码就能实现元素的居中。但需要注意的是,就像以下代码中那样,必须给div设定一个宽度。 1 2 3 4 5 .myDiv { margin: 0 auto; width:600px; } 9.  Overflow: hidden Overflow:Hidden,它做作用主要是隐藏溢出,而就像上述提到的,人们都很少用到其另外一个功能,就是清除浮动。 1 2 3 4 div { overflow:hidden; }

    时间:2012-09-27 关键词: 开发者 新鲜事 css

  • CSS互联网安全领袖峰会:《产业互联网安全发展研究报告》发布

    从产业视角解读数字化升级下安全新价值与新挑战,为安全行业与智慧产业提供系统性的规划和建设方向。在7月30日召开的第五届互联网安全领袖峰会上,腾讯生态安全研究中心联合P17安全领袖俱乐部发布了《中国产业互联网安全发展研究报告》(下简称报告),全景式呈现了产业互联网时代,安全的现状、挑战与趋势。 报告指出,安全建设与业务流程深度融合。过去企业是“从安全的角度看待业务”,现在则是“从业务发展的角度看待安全”。这也意味着企业的安全建设上升为企业CEO一把手工程。 万物上云,P17预估云安全服务市场增速高于大盘 报告指出,产业互联网的东风下,大数据、物联网、人工智能的发展,促进网络安全在不同场景的应用更为广泛,企业业务、设备、网络融合程度持续提升,不同安全主体和网络的融合加深。这意味着产业升级过程中,每产生一次技术创新都必须考虑安全因素,每产生一个新的需求都默认包含安全需求,安全建设与业务流程深度融合。过去企业是“从安全的角度看待业务”,现在则是“从业务发展的角度看待安全”。 这也意味着企业的安全建设不再只是CIO(首席信息官)和CISO(首席信息安全官)的事情,上升为企业CEO一把手工程。企业的CEO需要牵头以战略视角进行安全规划,从情报、攻防、管理和规划维度,构建企业的“安全战略观”,将过去被动防御的模式升级为主动防御体系。这在面对不断扩张的黑灰产引发的薅羊毛、金融欺诈、广告点击欺诈、拖库撞库等业务安全问题,尤为重要。 产业互联网的“万云同台”,也将企业的安全建设推入另一个维度。报告分析指出,对于企业来说,上云有助于降低安全成本,这使得他们愿意在云安全上进行投入。因为成熟的云服务平台在响应速度以及应对整体网络威胁形势复杂性上,比传统IT架构更具优势。对于传统IT安全企业而言,顺应互联网基础设施“云”化趋势,立足已有产品进行转型,将安全能力云化,通过订阅模式进行交付,也将获得新的增长空间。P17预计,未来3-5年,云安全服务市场的增速将高于信息安全市场的整体增速。 同时报告还指出,伴随我国信息化建设的不断推进,金融、能源、交通、电信等重要行业系统普遍面临着推进信息化发展和防范安全风险的挑战,关键基础设施的保障难度加大,各行各业在未来将进一步加大安全投入提升保障能力。就目前情况而言,我国网络安全主体投入仍然偏低,未来将会持续增长。IDC预测的数据显示,2018-2022年预测期内中国安全解决方案总体支出的年复合增长率(CAGR)为25.6%。 安全产业迎来发展新机,“专家服务”+“产品”提升安全竞争力 根据报告研究,网络安全产业将在产业互联网驱使下,从技术特点到分工要求,再到服务模式都将迎来新一轮变革。 从安全技术层面而言,伴随着人工智能、5G、大数据、云计算、量子通信、区块链等前沿科技在产业互联网时代日臻成熟,网络安全技术也迎来新的发展趋势。例如,网络安全中颇为重要的态势感知技术,将在大数据和人工智能的加持下,进一步提升效率、精准率,并降低成本;包含卷积神经网络在内的机器学习模型应用,给病毒对抗带来全新的思路;云计算的普及,让纵深防御(DiD)、软件定义信息安全(SDIS)、安全设备虚拟化(SDV)成为潮流等。 这也为安全服务提供商变革能力交付模式打下了坚实基础。报告认为,产业互联网时代,网络安全建设不单纯是技术问题,还是管理问题。企业安全建设不仅需要有效的工具、科学的方法还需要专业的运维。愈发严格的政策及合规要求,和愈发复杂的威胁情况,使得企业迫切需要一套包含合适的人、工具、方法的安全服务模式,从前期就做好安全战略规划以及安全政策咨询。报告判断,未来,企业对安全规划服务的需求将进一步增强。这意味传统的售卖软硬件安全产品的模式将不再适合,网络安全企业需要通过“专家服务”+“产品”的形式,帮助企业提升安全竞争力。 与此同时,报告指出产业互联网安全正面对人才缺位的挑战。产业互联网时代新增的安全需求以及更精细的安全分工,需要更为丰富的安全人才资源支持。但目前,我国网络安全人才培养与行业需求严重脱钩。首先,整体网络安全人才供给不足,截止目前我国培养专业网络安全人才10万人,预计到2020年,网络安全人才需求将达140万人;其次,高端网络安全人才匮乏。产业互联网安全对于技术性和实践性要求较高,目前的人才培养模式无法完全满足网络安全需求。产业互联网安全人才,需要在安全技术以外,深入了解垂直纵深产业的业务、流程、设备。 报告呼吁通过共建生态的做法,护航产业互联网的安全发展。本次报告的出品单位P17安全领袖俱乐部,从2017年的P13领袖圆桌发起,到如今的P17共议产业安全发展新契机,通过生态共建持续加深了开放、互通、共享的协作机制。未来,P17将持续推动构建最佳协同效应的安全生态,携手为企业提供更全面可靠的安全解决方案及服务,共同承担产业互联网安全发展责任。

    时间:2019-09-05 关键词: 互联网 腾讯 css css互联网安全领袖峰会

  • CSS 学习心得 资料分享

    由于公司就我一个 php 开发,既要会前端又要会后端,刚进来被前端给抓狂了~没办法只能自己去学HTML+CSS!由于之前是做 android 的,前端算是从零开始,写个帖子让大家防坑,快速进入学习! 第一个推荐就是谷歌浏览器,啥~你还没翻墙~哦,那你当程序员解决问题的能力要下降好几个档次!右键谷歌-检查,刚开始你可以随便点个网站,在谷歌工具下一个一个测试,看这属性有啥作用。 个人心得,你一直知道谷歌很强大,但你永远不知道他有多强大,因为他永远在给你惊喜。 第二,推荐网站 http://zh.learnlayout.com/ 学习 CSS 布局最佳去处! 还有这个 http://coolshell.cn/articles/6840.html 四十个CSS布局 当然,最重要的还有CSS禅意花园  http://www.csszengarden.com/tr/zh-cn/ 第三,自己网上下载的CSS资料,有CSS禅意花园还有CSS 实战手册

    时间:2019-07-08 关键词: php css

  • 从QWebView.load()(QWebFrame.load())切换到QNetworkAccessManager引起的CSS加载不了的问题记录

    更新:发现导致网页加载时卡住是其他原因,并非load加载问题(http://blog.csdn.net/chroming/article/details/51955999)。QWebFrame.load()是异步加载模式,不会导致GUI卡住。因之前文章中的错误内容向各位读者道歉。 近期使用PyQt4 写了一个程序,其中有个部分是显示网页。一开始使用的是简单的QWebView.load()(QWebFrame.load() 也能实现同样的功能): self.webView.load(QUrl(url)) 显示效果没什么问题。但在实际使用中发现在加载网页时经常出现无响应的情况。查询后发现是由于load是非异步(此处错误,应为异步)加载整个网页,会阻塞整个UI进程,所以导致整个程序卡住。多线程可以修复这个问题,但多线程比较复制,要修改的部分太多。于是找到了QNetworkAccessManager()这个可以异步加载部分内容的替代方案。使用的写法如下: AM = QNetworkAccessManager(parent=self) self.net_reply= AM.get(net_requests) AM.finished.connect(self.setweb) def setweb(self, netreply): replyArray = netreply.readAll() self.qwebView.page().mainFrame().setContent(replyArray ) 替换之后发现确实很少出现无响应的情况了,但却出现了一个新问题:大部分网页可以正常显示,但某些网页加载后没有css渲染效果。 看了两种网页的源码,都是调用了外部的css样式。咨询了公司的前端开发前辈,他说具体原因需要看console的输出。于是找到了Qt中能显示网页console的方法: import sys from PyQt4 import QtCore, QtGui, QtWebKit class WebPage(QtWebKit.QWebPage): def javaScriptConsoleMessage(self, msg, line, source): print '%s line %d: %s' % (source, line, msg) url = 'http://localhost/test.html' app = QtGui.QApplication([]) browser = QtWebKit.QWebView() page = WebPage() browser.setPage(page) browser.load(QtCore.QUrl(url)) browser.show() sys.exit(app.exec_()) 修改之后发现在css不加载的网页出现提示: Can't find variable: jQuery 但是那些正常的网页也调用了jQuery。 之后在stackoverflow提问得到回答,可能是因为setContent()中没有指定baseurl参数引起的。回去翻了下文档,发现确实有这个参数,之前没注意到: External objects referenced in the content are located relative to *baseUrl*. The *data* is loaded immediately; external objects are loaded asynchronously. 第一句说明了baseurl参数的作用:用于补全源码中额外的资源网址,也就是网页中使用了相对地址的外部资源。不指定baseurl这些资源就找不到。 第二句说明了为什么这种方式不容易卡:除了html资源是直接加载,其他资源都是异步加载的。 于是在setContent()中指定了baseurl,问题解决。 参考资料: 《QNetwork官方手册》http://doc.qt.io/qt-4.8/qtnetwork-module.html 《Print Javascript Exceptions In A QWebView To The Console》http://stackoverflow.com/questions/5792832/print-javascript-exceptions-in-a-qwebview-to-the-console 《what’s the difference between webView.load(QUrl) and QNetworkAccessManager.get(Qurl) in QT?》http://stackoverflow.com/questions/38095150/whats-the-difference-between-webview-loadqurl-and-qnetworkaccessmanager-getq

    时间:2020-01-08 关键词: css pyqt

  • css 布局布局定位心得

    1、局部绝对定位。  当我们在一个默认定位方式的div内嵌套的div实用 绝对定位(absolute)的时候,它会脱离上一个div的控制,要实现一个嵌套div相对上一个div的绝对定位,只需要给上一个div的定位加上 相对定位(relative)属性即可,一般不会影响父div的显示效果。2、尽量使用 margin,少使用 padding,原因,对内部使用padding 在各个浏览器到表现会不一样。3、list-style: 的差异  在 ul li 中 我们给 ui标签定义 list-style:none 这样在IE下是正确的,而在 firefox下,它会被认为对 内部的 li标签无效。因此 list-style 最好用来定义 li 标签 而不是ul

    时间:2019-07-08 关键词: div css

  • 现在都有哪些主流CSS框架

    现在都有哪些主流CSS框架

    近年来,H5的技术越来越火,带动的相关CSS框架越来越受欢迎,可以说已经应用到每一个网站上了。CSS技术的不仅应用起来非常的方便,效果还非常具有审美观。作为开发工具,CSS框架一直处于不断进化和改进的状态,因此我们强烈建议您关注眼下的趋势。这篇文章会带您了解2017年最流行的5种CSS框架。 1. Bootstrap 这个框架是GitHub的明星产品之一,被认为是拥有最好的响应性的CSS框架。专为前端开发而设计,有助于构建web设计理念、移动优先项目、网格系统、排版和按钮等。   Bootstrap没有任何附加功能,但是有第三方插件可用,除了常规的HTML元素,还具有其他常见的UI元素。其核心原则是RWD和mobile first。Bootstrap版本3支持各种浏览器(最新版本),并且自Bootstrap 2开始,框架支持响应式网页设计。Bootstrap 4版本目前正在开发中。 Bootstrap非常受欢迎,但并不是说他比其他的框架要好。大多数人用它是因为它的受欢迎程度,由于这一点,有很多资源可用(如教程,额外的插件等),使得使用Bootstrap更容易。 2. FoundaTIon FoundaTIon是一个开源项目,是CSS框架界的另一巨头。众所周知,它得流畅性和响应性非常好,可以用于许多用途:构建网站、创建电子邮件模板、构建移动和web应用程序。   这个框架对用户也非常友好,提供了培训、支持和咨询等服务。还有一些独特的组件(击键,Joyride,Flex视频等)和一些附加组件。其核心原则除了RWD和mobile first,还包括semanTIc。 FoundaTIon以完美的工作流程和开发人员的大力支持为自己赢得了巨大的利润。它是一个非常专业的框架,并提供了大量可用的教程,用户能够随时了解Foundation。 3. Bulam Bulam开放源码、免费并且节约开发人员的时间。由于学习起来和使用非常简单,因此最近变得非常流行。   首先,Bulma包含很棒的UI组件,如选标签、导航栏、框和面板等等,因为此框架旨在为用户提供清晰而有吸引力的UI。其次,Bulma非常的模块化,用户可以只导入所需的功能。 最后,这个框架的类可读性很高,这点对于一些开发者来说可能是非常具有吸引力的。 Bulma易于理解和使用简单,同时它具有所有必要的功能,帮助您高效的创建出优质产品。 4. Ulkit 可能没有多少人知道(使用)这个框架,但它与其他类似框架具有相同的功能。 Ulkit是轻量级和模块化的,用于创建快速但功能强大的Web界面。 Ulkit基本上是一组易于定制的组件集合,具有HTML Editor、Flex、其他附加组件和独特的组件。它的核心原则是RWD和mobile first,Ulkit广泛应用于WordPress主题中。使您能够灵活的进行手动定制机制。 5. Semantic UI 从名称就能猜出,Semantic UI旨在使网站构建过程更加语义化。核心特征是利用自然语言原理使代码更易于阅读,更容易理解。   核心原则是标签矛盾、语义和响应能力。这个框架是将语句和类作为可交换的组件来处理,并使用直观的JS和简单的调试。 Semantic UI的好处在于,它提供了组织良好的文档和网站,并提供了使用指南。简而言之,它有3000多个主题变量,50多个UI组件,以及5000多个提交。绝对值得一试。是创建页面漂亮、反应灵敏的网站的不错之选择。

    时间:2017-11-01 关键词: web 技术前沿 css bootstrap

  • 帮助设计师和开发者的9种实用CSS技巧

    一个网页设计师脑子里一定会被大量与他的工作有关的知识填满。而说到CSS,它可以帮助对网站进行设计,让设计具有更多的可能性,用更简单的方式让你的网站更具吸引力,而使用传统的技术这些方面并不容易面面俱到。 对于前端,页面而言,CSS的确是一门首选需要掌握的技能。以下就是9种非常实用的CSS3属性和使用技巧。 1.  圆角效果 谈及圆角小编曾在各种讨论中频繁听见:实现麻烦、兼容困难、性能不佳等等缺点。而如今的Web设计需要的就是各种各样新的开发技巧,因此越来越多的前端和页面都开始使用HTML5。 对于HTML5而言,从前必须使用图片来实现的需求,现在都可以通过代码来实现。而CSS3中加入的“border-radius”就可以用通过它来直接定义HTML元素的圆角,并支持所有浏览器的最新版本。 我可以通过如下代码实现: 1 2 3 4 border-radius: 10px; /* CSS3 Property */ -moz-border-radius: 10px;  /* Firefox */ -webkit-border-radius: 10px; /* Chrome/Safari */ -khtml-border-radius: 10px; /* Linux browsers */ 我们也可以使用下面这样的组合版本,或者用它来对上面的代码进行速记。 1 -moz-border-radius: 10px 20px 30px 0; 2.  阴影效果 另一个CSS3可实现的有趣功能是阴影效果(box-shadow),通过“box-shadow”可以非常简单的实现该功能。我们常见的主流浏览器都支持这个属性,而Safari浏览器支持可选加前缀的-webkit-box-shadow属性。 代码包括: 1 2 3 4 5 #myDiv{ -moz-box-shadow: 20px 10px 7px #ccc; -webkit-box-shadow: 20px 10px 7px #ccc; box-shadow: 20px 10px 7px #ccc; } 而如下的JavaScript代码也能实现同样的阴影效果: 1 object.style.boxShadow="20px 10px 7px #ccc" 3.  @Media属性 @Media可以直接指定应用样式引入媒体属性,用于相同样式针对不同屏幕尺寸的网页风格变化, 它也有助于响应式网页设计中的造型变化。通过简单的修改如下代码就能实现。 1 2 3 @media screen and (max-width: 480px) { } 而使用如下的@media print甚至可以指定CSS的打印预览: 1 2 3 4 @media print { p.content { color: #ccc } } 4.  添加一个渐变填充 在CSS3中的渐变效果是另一个让人惊叹的属性。它目前还未得到全部浏览器的支持,因此最好不要完全依赖它来设置布局。而这里有一个基于CSS的梯度导航栏可以让大家参考一下。 以下是实现的方式。 1 background: -webkit-gradient(linear, left top, left bottom, from(darkGray), to(#7A7A7A)); 5.  背景尺寸 背景尺寸(Background size)是CSS3中最实用的效果之一,目前很多浏览器都已经支持。Background size属性可以让你随心所欲的控制背景图的尺寸大小。 从前用于背景的图像大小在样式中是不可调整的,如果你无法想象那样有多么糟糕,可以试着回忆一下,在自己的电脑桌面上做壁纸的时候遇到一张合乎心意却偏偏与桌面尺寸不合的图片,只能通过平铺来填充。 [!--empirenews.page--] 那样的桌面丑的让一个审美观及格的人都会有砸屏幕的冲动。而现在我们可以通过改变一行代码让背景图片适应自己的页面。 1 2 3 4 5 6 div { background:url(bg.jpg); background-size:800px 600px; background-repeat:no-repeat; } 6  @font face 属性在使用CSS3针对各种字体进行转变的时候已经充分证明了它的实用性。从前因为各种字体许可的问题,在设计过程中只能选择几种特定的字体。而通过@font face我们就能自定义字体的名称: 1 2 3 4 5 6 7 @font-face { font-family: mySmashingFont; src: url('blitz.ttf') ,url('blitz.eot'); /* IE9 */ } 而后我们能通过一个简单的代码,随时随地的使用自定义的mySmashingFont字体系列 1 2 3 4 div { font-family:mySmashingFont; } 7.  clearfix属性 如果Overflow: hidden清除浮动的效果实在不是你的首选,那么clearfix应该是你更好的选择,它可以让你个别处理不同的HTML元素。 1 2 3 .clearfix { display: inline-block; }   1 2 3 4 5 6 7 8 .clearfix:after { content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0; } 8.  Margin: 0 auto Margin: 0 auto实现的是CSS中最基础的功能,我们常常也会用它来实现最简单也最常用的功能—居中。虽然CSS本身没有一个指定居中的功能,但是通过auto margin指定一个边距仍然能非常简单的就实现居中这个功能。 通过这个属性,用一段简单的代码就能实现元素的居中。但需要注意的是,就像以下代码中那样,必须给div设定一个宽度。 1 2 3 4 5 .myDiv { margin: 0 auto; width:600px; } 9.  Overflow: hidden Overflow:Hidden,它做作用主要是隐藏溢出,而就像上述提到的,人们都很少用到其另外一个功能,就是清除浮动。 1 2 3 4 div { overflow:hidden; }

    时间:2012-09-25 关键词: Linux css

发布文章

技术子站

更多

项目外包

更多

推荐博客