Google credits security researcher Shaheen Fazim with reporting the exploit to Google. The dude's LinkedIn says he's a professional bug hunter, and I'd say he deserves the highest possible bug bounty for finding something that a government agency is saying "in CSS in Google Chrome before 145.0.7632.75 allowed a remote attacker to execute arbitrary code inside a sandbox via a crafted HTML page."
Using such a resolution in the web browser would render a tiny illegible desktop site. To avoid that, CSS pixels add a layer of abstraction. Initially the amount of actual pixels compared to CSS pixels was simply a 2x or 3x conversion, but these days fractional scaling is also common.
When a site feels unsafe, unreliable or even slightly "off," users don't rationalize the problem. They react to it. They leave. And in many cases, they don't just abandon the session - they go straight to a competitor.
Browser cache - Sometimes the browser is still loading the old CSS file. A hard refresh (Ctrl + F5) usually fixes it. Wrong file linked - Double-check if your HTML is actually linked to the correct CSS file. Specificity issues - Another CSS rule might be overriding your changes.
If you ask Claude to generate a web page for you, there is a high chance you will get a very generic output. The page serves a functional purpose, but it's not very appealing. You can see that this design clearly serves the functional purpose, but doesn't look very appealing.
CMSWire's Marketing & Customer Experience Leadership channel is the go-to hub for actionable research, editorial and opinion for CMOs, aspiring CMOs and today's customer experience innovators. Our dedicated editorial and research teams focus on bringing you the data and information you need to navigate today's complex customer, organizational and technical landscapes.
I do not want AI in my web browser. I just don't. I also don't want companies collecting information about me, or sponsored content and product integrations. All those bits make me want to pull my hair out. I like my privacy and want to browse, you know, the old-fashioned way. I do use AI (on occasion), but only locally-installed AI and only for specific purposes (such as learning Python or researching a topic when I don't want to use a standard search engine).
Dear JS ecosystem, I love you, but you have a dependency management problem when it comes to the Web, and the time has come for an intervention. No, this is not another rant about npm's security issues. Abstraction is the cornerstone of modern software engineering. Reusing logic and building higher-level solutions from lower-level building blocks is what makes all the technological wonders around us possible. Imagine if every time anyone wrote a calculator they also had to reinvent floating-point arithmetic and string encoding!
By how much? Well, that would depend on the value of the <length> argument provided. Thomas Walichiewicz, who proposed :near(), suggests that it works like this: button:near(3rem) { /* Pointer is within 3rem of the button */ } For those wondering, yes, we can use the Pythagorean theorem to measure the straight-line distance between two elements using JavaScript ("Euclidean distance" is the mathematical term), so I imagine that's what would be used behind the scenes here.
As the HTTP Archive reminds us, video and audio files are some of the heaviest resources requested by web pages. This new standard will dramatically reduce page weight and ease resource overhead all through a simple declarative HTML attribute. Lazy audio and video works just like lazy-loading of image and iframe elements work today: just add loading=
A JavaScript script saved as a bookmark is called a 'bookmarklet,' although some people also use the term 'favelet' or 'favlet.' Bookmarklets have been around since the late 90s. The site that coined them, bookmarklets.com, even remains around today. They're simple and versatile, a fact evidenced by most of the bookmarklets listed on the aforementioned site are still working today despite being untouched for over two decades.
Chris Coyier demonstrates how to maintain a video's state across different pages using CSS view transitions. He notes that this is fairly easy to do with same-page view transitions, but with multi-page view transitions you'll need to leverage JavaScript's pageswap event to save information about the video's state in sessionStorage as a JSON string (works with audio and iframes too), and then use that information to restore the state on pagereveal. Yes, there's a tiiiiny bit of audio stutter because we're technically faking it, but it's still super neat.