问题:JavaScript使用事件onclick导致css样式失效

首先,我们用以下代码得到的是一个样式没有失效的红色"超链接",如下图1
代码1:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style type="text/css">a{color: red;}</style>
</head>
<body>
<a herf="#">超链接</a>
</body>
</html>

(图1)

然后,发现用如下代码时,(由图2,图3可知)按下按钮以后,发现css代码不起作用,样式失效了
代码2:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style type="text/css">a {color: red;}</style><script type="text/javascript">function test1() {document.write("aa")}</script>
</head>
<body>
<input type="button" onclick="test1()" value="按钮"/>
<a herf="#">超链接</a>
</body>
</html>



里面的css代码已经不翼而飞

推断:

1.使用onclick会导致css样式失效
2.用document的write方法会导致样式失效
显然这些都是不成立的,所以去查阅资料得到如下结论

结论:

一个document对象一旦生成后,再次使用document.write的时候,document对象会先清空原本的所有标签,然后再进行body上的内容。

分析 :

  • 没按按钮之前:代码由上向下执行,遇到document.write的时候,document对象还没完全生成(备注1),当执行完成后,我们用浏览器看到生成后的页面了,说明document对象已经生成了。

  • 按按钮:我们再来点击按钮,再次使用document,就会导致document对象清空所有标签,导致样式CSS失效。

(备注1:document对象还没完全生成:因为下面还有代码没有执行,一个标签对应一个对象,document是保存了所有的标签对象,代表所有HTML的信息,没有执行完代表信息没有完全录入到document)

JavaScript使用事件onclick导致css样式失效问题相关推荐

  1. Filter过滤器导致CSS样式失效

    F12打开控制台看到如下警告: 问题代码: public class CharacterEncodingFilter extends HttpFilter {@Overridepublic void ...

  2. 本机配置nginx后css样式失效

    现象:nginx启动后,js.html可以加载,但是引用的css样式失效. 原因:nginx配置问题 发现过程:         查看引用失效的css文件后发现请求头中Accept为text/css ...

  3. Vue 项目部署出现css样式失效的解决方案

    Vue 项目部署出现css样式失效的解决方案 参考文章: (1)Vue 项目部署出现css样式失效的解决方案 (2)https://www.cnblogs.com/Desmondexperience/ ...

  4. css样式让样式失效,如何让css样式失效

    让css样式失效的方法:1.通过更改元素名称,来达到让此区域css失效的目的:2.通过设置优先级高的css样式来覆盖此css样式使其失效. 本教程操作环境:windows7系统.css3版,DELL ...

  5. Django解决css样式失效问题最终方法

      由于Django对css的支持不是很友好,有时候我们明明写了相应的css代码,但是引入css文件的时候前端没有效果,找了很多方法来解决都没能最终解决,终于在一个帖子上看到一个方法,对解决css样式 ...

  6. sharepoint 编程_SharePoint 2010-以编程方式将JavaScript,元标记和CSS样式添加到每个页面的页眉

    sharepoint 编程 For SharePoint sites, particularly public-facing ones, there are times when adding Jav ...

  7. javascript、jquery 动态修改css样式方法

    javascript.jquery 动态修改css样式方法 javascript 修改样式的方法 第一种.使用obj.className来修改样式表的类名 var obj = document.get ...

  8. 服务器怎么控制忽略样式_使用JavaScript来编写你的CSS样式代码——JSS

    介绍 JSS是CSS的创作工具,它允许你使用JavaScript以声明,无冲突和可重用的方式描述样式.它可以在浏览器,服务器端或在构建时在Node中编译.JSS与框架无关.它由多个包组成:核心部分,插 ...

  9. vue项目打包部署后css样式失效

    项目部署后,样式失效,很奇怪,审查元素发现没有样式,不过却加载了css文件,问题出在哪里呢? 发现不是路径问题,而是加载的不对,content-type:text-plain,而不是content-t ...

最新文章

  1. docker 感性介绍
  2. JavaScript库开发者们的规则
  3. Ookla speedtest网速测试算法实现
  4. foundation框架之反射机制
  5. git对版本文件库的管理的工作目录
  6. CF1365G Secure Password(构造,交互,二进制分组)
  7. 【总结整理】JavaScript的DOM事件学习(慕课网)
  8. 元宵节电商促销首页设计PSD分层模板
  9. zabbix 的安装
  10. 私有属性的另类访问方式
  11. Yii Framework2.0开发教程(2)使用表单Form
  12. 计算机网络原理精讲学习笔记
  13. Linux命令行下播放音乐SOX
  14. ue4 4.27源码下载
  15. 只需五步,中国电信物联网报障指引来了
  16. Ansible最佳实践之委派任务和事实
  17. ESP通过乐为物联控制灯,微信发送数值,ESP上传传感器数据
  18. BP神经网络对鸢尾花进行分类
  19. (Ynoi2015) 纵使日薄西山 题解
  20. 51单片机解析卫星定位数据源码+DHT11,1602显示

热门文章

  1. 【转】设置右键显示/隐藏系统文件
  2. angular ts 表格_Angular8 ui-grid替代方案ag-grid入门
  3. 第10章第21节:使用Ribbons 2生成漂亮的随机线条背景 [PowerPoint精美幻灯片实战教程]
  4. html中上下左右控制对象移动Demo
  5. Mac电脑如何给Finder文件夹更换背景?
  6. mysql characterencoding utf8mb4_Mysql UTF-8mb4字符集的问题
  7. 做完近视手术应该注意什么?近视术后护理攻略请你收下
  8. I am a lazy bone
  9. “新产业50人论坛”之陈柳平:量子通信与量子计算的商业实践
  10. Android Binder机制浅析及AIDL的使用