小编Ian*_* Y.的帖子

返回后如何让谷歌浏览器和iOS记住div中的滚动位置?

问题是滚动容器是div,而不是body。这会导致 Google Chrome 和 iOS 无法记住div用户转到另一个页面然后返回后的滚动位置。

相关的CSS代码如下。滚动容器是#container.

* {
    margin: 0;
    padding: 0;
    }

html {
    height: 100%;
    }

body {
    height: 100%;
    overflow: hidden;
    }

#container {
    height: 100%;
    overflow: auto;
    }
Run Code Online (Sandbox Code Playgroud)

这里是一个演示上的jsfiddle。请在 Google Chrome 和 iOS 上重现该问题,方法是将内容滚动到大约 50%(或任何其他明显长度),单击超链接转到另一个页面,然后单击浏览器的后退按钮。

有没有一种简单的方法可以让 Google Chrome 和 iOS 像 Firefox 一样记住滚动位置?


== 编辑以回应答案 ==

一个简单的 .html 文件,用于测试是否有任何代码onbeforeunload有效。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <script>
        window.onbeforeunload = function () {
            alert('Are …
Run Code Online (Sandbox Code Playgroud)

css browser scroll position back

5
推荐指数
1
解决办法
2478
查看次数

使用 PHP 生成 SVG 文件

因此,我尝试为我的用户创建一些标签图像,显示他们获得的总积分。我正在尝试将 SVG 写入 php 文件,该文件将添加动态内容,例如用户的点。我想使用 HTML<img>标签从文件中获取 SVG image_gen.php

如何通过标签显示 SVG <img>

谢谢!

html php svg

5
推荐指数
1
解决办法
6253
查看次数

检测鼠标从哪一侧留下一个div

我修改了另一个问题的最佳答案的代码(旨在检测鼠标从哪一侧进入a div),以使其检测鼠标从哪一侧离开a div

这是我的代码。我更改了日志以显示在控制台中。但不知何故,结果总是“右”或“下”而没有“上”或“左”。

请问有什么建议吗?

javascript mouseleave direction

5
推荐指数
1
解决办法
2157
查看次数

IntersectionObserver rootMargin 的正负值不起作用

设置的代码rootMargin如下所示。

let observerOptions = {
    root: null,
    rootMargin: "100px",
    threshold: []
};
Run Code Online (Sandbox Code Playgroud)

当我将其设置为 时100px,根元素的边界框不会增长 100 像素;当我将其设置为 时-100px,根元素的边界框不会缩小 100 像素。

这是一个关于 jsFiddle例子。该示例直接取自MDN 的 IntersectionObserver 文档,我只更改了rootMargin.

javascript intersection-observer

5
推荐指数
1
解决办法
4776
查看次数

角色="radiogroup"和角色="无线电"真的是必要的吗?

有一些ARIA教程网站使用非语义标记和一些JavaScript在于向世人证明使用role="radiogroup",并role="radio"如下面的例子:

<ul role="radiogroup">  
    <li tabindex="-1" role="radio" aria-checked="false">  
        <img role="presentation" src="radio-unchecked.gif">
        Option1
    </li>  
    <li tabindex="0"  role="radio" aria-checked="true">  
        <img role="presentation" src="radio-checked.gif">
        Option2
    </li>  
</ul>
Run Code Online (Sandbox Code Playgroud)


但是,role当我们已经拥有语义和无javascript方法时,使用这些方法有什么意义:

<ul>  
    <li>  
        <input  id="opt1" type="radio" name="opt" value="1">
        <label for="opt1">Option1</label>
    </li>  
    <li>  
        <input  id="opt2" type="radio" name="opt" value="2">
        <label for="opt2">Option2</label>
    </li>  
</ul>
Run Code Online (Sandbox Code Playgroud)

html radio wai-aria

4
推荐指数
2
解决办法
4637
查看次数

使用Firefox"后退"按钮时不会执行启动JavaScript代码

这个网站有一个奇特的效果:当点击导航链接时,内容会淡出,当新页面(在不同的URL上)加载时,其内容会淡入.

有趣的是,在用户点击浏览器的"后退"按钮后,他们会返回上一页,内容仍会淡入.换句话说,上一页不会停留在淡出状态,这是最后一次看到的.根据这个评论,页面应该保持在其最后看到的状态.

我尝试了很多方法来重现这种效果,但在我的测试中,点击"返回"按钮后,上一页仍然没有显示任何内容(内容保持在淡出状态).有时它适用于某些浏览器但不适用于其他浏览器.有时候它可以工作,但是在重新打开浏览器之后就没有了.

网站如何实现这种效果,即使在用户使用"后退"按钮转到上一页后也能正常工作?


===编辑1 ===

这是我的测试页面.


===编辑2 ===

上述测试页面已经在三台不同的PC上使用Firefox进行了测试,Firefox从第4版到第20版都通过在线跨浏览器测试服务进行了测试.结果是一样的:不起作用.

javascript firefox back

4
推荐指数
1
解决办法
6213
查看次数

使用HTML5和Microdata标记博客文章"关键字"的正确方法?

keywords来自Schema.org 的属性,因为它以复数形式表示,似乎暗示它的值应该是一行逗号分隔的文本.如下例所示:

<p itemprop="keywords">lorem, ipsum, dolor, sit, amet</p>
Run Code Online (Sandbox Code Playgroud)

这让我想起了<meta name="keywords" content="lorem, ipsum, dolor, sit, amet">我们过去<head></head>因为SEO原因而放置的标签.

但是,从语义学的角度来看,我认为上面的例子是不正确的,因为关键字应该是一个单词列表.因此,应该使用该<ul>元素进行标记.

关于如何使用HTML5和Microdata标记博客文章的关键字,是否存在共识?

html5 semantic-markup microdata schema.org

4
推荐指数
1
解决办法
3096
查看次数

是否有非视网膜显示的媒体查询?

根据一篇关于CSS-Tricks的文章,未来的视网膜显示媒体查询可以写成:

@media
only screen and (-webkit-min-device-pixel-ratio: 2),
only screen and (   min--moz-device-pixel-ratio: 2),
only screen and (     -o-min-device-pixel-ratio: 2/1),
only screen and (        min-device-pixel-ratio: 2),
only screen and (                min-resolution: 192dpi),
only screen and (                min-resolution: 2dppx) { 

  /* Retina-specific stuff here */

}
Run Code Online (Sandbox Code Playgroud)

如果我想为非视网膜显示器编写CSS代码怎么办?

我知道您可以先为非视网膜显示器编写一些CSS代码,然后使用上述媒体查询覆盖视网膜显示.但有没有专门针对非视网膜显示的媒体查询?

css css3 retina

4
推荐指数
1
解决办法
1909
查看次数

flexbox可以水平和垂直居中图像而不拉伸它们吗?

我想让图像在容器内水平和垂直居中.如果它们的宽度或高度大于容器的宽度或高度,那么在保持其比例的同时使它们自动收缩.

我在容器上使用以下CSS代码来尝试实现目标:

display: -ms-flexbox;
display: -webkit-flex;
display:         flex;
    -ms-flex-direction: column;
-webkit-flex-direction: column;
        flex-direction: column;
          -ms-flex-pack: center;
-webkit-justify-content: center;
        justify-content: center;
Run Code Online (Sandbox Code Playgroud)

而且这里有上的jsfiddle三个例子:

  • 第一个例子是宽度大于其高度的图像.它工作正常.
  • 第二个例子是高度大于其宽度的图像.但在这个例子中,它的宽度延伸到容器的宽度,这不是我想要的.
  • 第三个例子与第二个例子有同样的问题.

此外,我知道通过使用CSS位置和变换也可以实现目标.但是这种方法通常会在调整大小的图像和容器的边框之间产生1个像素的间隙.也就是说,调整大小的图像无法触及容器的边界,它应该在哪里.因此我不得不求助于CSS flexbox.

css flexbox

3
推荐指数
1
解决办法
3957
查看次数