小编Rou*_*ica的帖子

iPhone Safari不会自动缩小纵向 - >横向 - >纵向

我有一个非常简单的HTML页面,其中包含适用于iPhone的META标记:

<meta name="viewport" content="height=device-height,width=device-width,initial-scale=1.0,user-scalable=no" />
Run Code Online (Sandbox Code Playgroud)

使用iPhone Safari,当页面以纵向模式加载时,它看起来很好,宽度适合屏幕.当我将iPhone旋转到横向模式时,网页会自动调整大小以适应横向宽度.好,这就是我想要的.

但是当我从横向旋转回来时,页面不会像以前一样调整回适合纵向宽度.它仍然在景观宽度.

我希望iPhone能够自动将其设置回正确的宽度,就像横向模式一样.我不认为这应该涉及方向监听器,因为它全部是自动完成的,我没有任何特殊的样式用于不同的模式.

为什么iPhone不以纵向模式重新调整网页大小?我该如何解决?

UPDATE

我设法让iPhone自动调整大小,但有一个奇怪的现象,只有在偶数次旋转之后这样做...非常非常奇怪.
我使用这个META标签:

<meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
Run Code Online (Sandbox Code Playgroud)

以下是我必须做的事情才能使其自动调整大小:
1.纵向加载 - >看起来不错.
2.旋转到横向 - >调整大小以适合屏幕.
3.向后旋转至纵向 - >不调整大小.
4.旋转到横向 - >仍然适合景观.
5.旋转至纵向 - >调整大小以适合纵向屏幕.

有人可以解释这种行为吗?
我仍然想知道如何解决这个问题,并感谢任何帮助.

谢谢!
汤姆.

iphone safari mobile-safari iphone-standalone-web-app

36
推荐指数
2
解决办法
6万
查看次数

SVG 的 SMIL 是否已弃用、未弃用或...已暂停但最终将被弃用?

TLDR:我正在尝试确定是否值得花一些时间掌握SMIL。官方路线(至少来自 Blink,但可能不是来自 Gecko)似乎是这种动画技术在功能上已弃用……但实际情况表明情况并非如此。

学习 SMIL,因为它让我觉得它是一种优雅的技术——但我不想今年花几个月的时间学习一两年后就会过时的东西。

问题: 值得学习SMIL吗?


几年前,人们一致认为SVG的动画语言SMIL同步多媒体集成语言)将被弃用:

2015 年 4 月,Blink团队写道:

“我们打算弃用 SMIL 动画以支持 CSS 动画和 Web 动画”

资料来源: https : //groups.google.com/a/chromium.org/g/blink-dev/c/5o0yiO440LM

五年半前有意弃用的两个主要原因似乎是:

  • “在实现方面,SMIL 为 Blink 增加了显着的复杂性”
  • “Internet Explorer 不支持 SMIL,这限制了它对关键功能的使用”

滚动到 2020 年,Internet Explorer迷失在时间的迷雾中,MSIE 的继任者Edge现在使用Blink渲染引擎(以及ChromiumChromeOperaBrave等)。

眨眼的主要竞争对手,壁虎似乎完全满意SMIL …

svg gecko blink smil

14
推荐指数
2
解决办法
1053
查看次数

桌面和移动设备之间的SVG渲染不一致 - 在SVG中Arial是一种Web安全字体吗?

我有一个主要是文本的SVG.

它在Windows 7上的Firefox 53和Chrome 58中呈现相同(且正确).

它在Android 6上的Firefox Mobile 53和Chrome Mobile 58中渲染相同(但不正确).

不正确的渲染与间距有关 - 两个非文本元素的位置不正确,一个非文本元素比它应该更宽.

我的猜测是,字体渲染不同-但会宋体 Android上6从渲染不同宋体在Windows 7?

这是我的SVG:

<svg xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     viewbox="0 0 805 120">

<defs>

<filter id="shadow" x="0" y="0">
<feOffset result="offOut" dx="2" dy="2" />
<feColorMatrix result="matrixOut" values="0.2 0 0 0 0 0 0.2 0 0 0 0 0 0.2 0 0 0 0 0 1 0" />
<feGaussianBlur result="blurOut" stdDeviation="2" />
<feBlend in="SourceGraphic" mode="normal" />
</filter>

<style type="text/css"><![CDATA[

svg {
font-family: arial;
font-size: 84px;
font-weight: 900; …
Run Code Online (Sandbox Code Playgroud)

firefox svg android text google-chrome

10
推荐指数
1
解决办法
764
查看次数

如何在 HTML &lt;dialog&gt; 后面设置 CSS ::backdrop 动画?

<dialog>元素现已跨浏览器兼容(自2022 年 3 月起)。

我今天尝试了一下并熟悉了:

  • 超文本标记语言

    • <dialog>
  • JavaScript

    • .show()
    • .showModal()
    • .close()
  • CSS

    • ::backdrop

一切看起来都很简单,但到目前为止我无法实现的一件事是:淡出背景

例如,如果我希望背景的最终颜色为:

  • background-color: rgba(0, 0, 63, 0.8);

但有它transition(或animate)来自background-color

  • background-color: rgba(0, 0, 0, 0);

这可能吗?


这是我的(非工作)示例:

const myButton = document.querySelector('button');
const myDialog = document.querySelector('dialog');

const requestDialog = () => {
  myDialog.showModal();
  setTimeout(() => myDialog.classList.add('fadeUp'), 400);
}

myButton.addEventListener('click', requestDialog, false);
Run Code Online (Sandbox Code Playgroud)
body {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 180px;
}

button {
  position: absolute;
  top: 6px; …
Run Code Online (Sandbox Code Playgroud)

html javascript css dialog backdrop

10
推荐指数
2
解决办法
5320
查看次数

从Facebook应用内浏览器无法正常链接到Facebook App(使用fb:协议)的Deeplink

我正在编写一个移动网页,该网页同时具有重定向和指向Facebook Page的两个手动备份链接(当重定向不起作用时)。

链接采用以下形式:

fb://page/[PAGE ID NUMBER]
Run Code Online (Sandbox Code Playgroud)

重定向和链接在Chrome Mobile和Firefox Mobile中有效,但是(惊奇)它们在Facebook Browser中不起作用,这反而给了我错误:

Page can't be loaded.
Run Code Online (Sandbox Code Playgroud)

我感到困惑的是,在Facebook浏览器中无法链接到Facebook App。

我该如何解决?是否有任何创造性的解决方案或解决方法...或者我错过了明显的事情?


附加信息:它看起来像重定向在对Facebook的浏览器中的至少一个工作版本Facebook的iOS应用。因此,该问题可能与Facebook Android App无关


更新1

我已经取得了一些进展。我发现Facebook的应用内浏览器并不总是(或从来没有?)确认/加载/执行外部脚本文件

在这种情况下,页面加载后,外部脚本href将使用fb://协议链接重新填充链接中的属性。

我已经将相关的javascript函数从外部脚本移到了实际页面的底部。我已经测试了这些功能,并且可以看到它们正在激活。尽管链接仍然无法正常工作。


更新2

令我吃惊的是,幕后可能存在某种安全机制,该机制不允许任何由javascript驱动的href属性重新填充,并且代替fb://协议链接不起作用,可能是初始的,默认的http://www.facebook.com/链接甚至从未被替换过,正是那些 http://协议链接不起作用。

因此,我更新了PHP模板,以初始的默认链接fb://代替了http://链接(因此,传递给Facebook应用内浏览器的页面中的任何内容都无需随时由任何客户端脚本进行更新) 。

不。还是行不通。


更新3

我在页面底部添加了一个普通的香草链接,链接到该网站的主页。链接完全正常运行。

后来,我指出了指向外部域的原始链接。他们没有工作。

所以...我得出的结论是,只有 http://指向同一域的协议链接才起作用,这就是为什么如果链接指向外部域或fb://协议地址,则它们将不起作用的原因。

结论错误。

我将原始链接指向该网站的首页,但仍然无法正常工作


更新4

很快,我删除了对外部脚本的引用,该脚本是为自定义OS +浏览器环境的链接而设置的(尽管根据FB Debugging工具,此脚本引用已被Facebook完全忽略了)。

链接有效。

因此,我之前添加的普通香草链接起作用的原因与它所指向的位置无关,而仅与脚本从未尝试访问或更新它的事实有关。

我将原始链接指向外部域。他们工作了。

我将原始链接指向了fb:// …

html javascript php .htaccess facebook

9
推荐指数
1
解决办法
354
查看次数

使用秒而不是百分比来表达 CSS3 @keyframes

@keyframes在 2016 年 1 月学习了 CSS3语法,两年多后,我发现自己@keyframes在很多工作中都使用了动画(比 CSS3 过渡更复杂,比基于 javascript 的动画更简单)。

我真正想念的一件事是能够以@keyframes秒而不是百分比来表达。是否有任何技巧可以实现这一目标?

我知道我可以使用以下100shack 来循环显示彩虹色,每 3 秒循环一次:

div {
    width: 120px;
    height: 120px;
    background-color: violet;
    animation: myAnimation 100s;
}

@keyframes myAnimation {
    0% {background-color: red;}
    3% {background-color: orange;}
    6% {background-color: yellow;}
    9% {background-color: green;}
   12% {background-color: cyan;}
   15% {background-color: blue;}
   18% {background-color: violet;}
  100% {background-color: violet;}
}
Run Code Online (Sandbox Code Playgroud)
<div></div>
Run Code Online (Sandbox Code Playgroud)

但这意味着动画在(有效)完成后仍在运行(尽管在不知不觉中)另外 82 秒。除其他问题外,这使多次迭代变得遥不可及。

我真正想写的很简单:

@keyframes myAnimation {

  0s {background-color: red;}
  3s {background-color: orange;}
  6s {background-color: yellow;} …
Run Code Online (Sandbox Code Playgroud)

html javascript css

7
推荐指数
1
解决办法
4655
查看次数

当我有效地使用非点符号时,jshint的解决方案"更好地用点符号写"

当我提供一个字符串时,如何使用点符号?

我正在编写一些代码来填充角度'x-editable'类型的控件.我有一个预定义的值数组,基于我的webapi服务将传递给我的字符串标识符.它发回一个字符串.基于此字符串,我从使用以下方法预定义的数组中选择对象:

valuetoshow = myarray['stringFromWebApiCall'];
Run Code Online (Sandbox Code Playgroud)

JSHINT正在抛弃它,因为它要我使用点符号.我理解为什么JSHINT告诉我这个,而且我也理解它告诉我哪些线路,而且我知道如果我将我的代码改为像"answers.undergraduate = bigarray"那样它将修复jshint. 当我在下面的代码中提供了一个字符串时,我只是不知道如何使用.notation访问数组.

在javascript中是否有某种方法可以让我使用字符串以点表示法查找某些内容?我已经习惯了C#和这种准类型奇怪的变量定义,这让我很难理解.

  • ['UNDERGRADUATE'] is better written in dot notation.
  • ['GRADUATE'] is better written in dot notation.
  • ['HONORARY'] is better written in dot notation.
  • ['DOCTORATE'] is better written in dot notation.
  • ['MASTERS'] is better written in dot notation.
  • ['UNDEFINED'] is better written in dot notation.

我应该试图压制错误吗?我应该在api结果上写一个很难看的开关声明吗?

这是真正的代码

    answers['UNDERGRADUATE'] = [
      { 'name': 'Find a job', 'ticked': false, 'hideThisGroup':false, 'checkboxDisabled': false },
      { 'name': 'Create a network with STTI members', 'ticked': false, 'hideThisGroup':true, 'checkboxDisabled': …
Run Code Online (Sandbox Code Playgroud)

javascript arrays syntax jshint

6
推荐指数
1
解决办法
1万
查看次数

我可以使用javascript“转换” &lt;audio&gt; 元素的音量吗?

如果我希望随着时间的推移不规则地改变opacitya 的<div>,我可以使用 CSSanimation@keyframes

.myDiv {
  animation: myAnimation 10s linear;
}

@keyframes myAnimation {

    0% {opacity: 1;}
   80% {opacity: 1;}
   81% {opacity: 0.99;}
  100% {opacity: 0;}

}

}
Run Code Online (Sandbox Code Playgroud)

但是,如果我想要的东西改变volume了的<audio class="my-audio">以相同的方式不规则元素随着时间的推移?

我知道我可以开始:

var myAudio = document.getElementsByClassName('my-audio')[0];
myAudio.volume = 1.0;
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能将volumeto 0.99, when 81%of the sound clip has beenplayed and淡化到 a volumeto 0.0, when 100%of the sound clip has beenplayed?

这种听觉转换是否有 javascript 语法,或者我正在寻找不存在的东西(还)?

html javascript transition html5-audio

6
推荐指数
1
解决办法
690
查看次数

可以将position:absolute元素设为粘性吗?

在 CSS 中,position: sticky使元素能够以某种position: static行为进行显示(即,它采用其在文档流中的默认位置),直到它到达某个滚动位置,然后采用某种position: fixed行为。

position: sticky那么...这是否意味着我们不能在需要正常行为的元素上使用position: absolute


语境:

我有一个流出元素,它占据了视口左上角的位置。滚动一两英寸后,元素会到达视口的顶部,理想情况下,我希望它不会在此时继续消失。

css css-position sticky

6
推荐指数
2
解决办法
8608
查看次数

阐明 &lt;meta name="format-detection"&gt; 的正确用法

我找不到以下标准的W3WHAT-WG(甚至非标准第三方)规范

<meta name="format-detection">
Run Code Online (Sandbox Code Playgroud)

我有两个原则问题。

问题1:元标记中可以引用哪些格式?format-detection

最常见的是,第三方参考文献引用telephone.

偶尔email还是date被引用。

更罕见的是,address被引用。

一个来源 ( https://www.goodemailcode.com/email-code/template.html ) 引用了这一点url

这给出了以下格式列表:

  • telephone
  • email
  • date
  • address
  • url

这是完整的格式列表吗?还有其他人吗?

问题 2:必须单独引用每种格式,还是可以在单个元标记中一起引用任意数量的格式?

即问,是否需要声明:

<meta name="format-detection" content="telephone=no">
<meta name="format-detection" content="email=no">
<meta name="format-detection" content="date=no">
<meta name="format-detection" content="address=no">
<meta name="format-detection" content="url=no">
Run Code Online (Sandbox Code Playgroud)

或者这是完全可以接受的:

<meta name="format-detection" content="telephone=no, email=no, date=no, address=no, url=no">
Run Code Online (Sandbox Code Playgroud)

如果format-detection不是公认的标准,我非常乐意参考非标准规范(或博客文章),只要该文档具有一定的权威性并且不仅仅是第三方的观察或评论。

html format specifications detection meta-tags

6
推荐指数
0
解决办法
1201
查看次数