Apply ContentThemeTransition on a scrollable TextBlock - xaml

I'm trying to create a TextBlock that transitions its content when its value changes (slide in from left).
The problem is that the transition is replayed each time the user scrolls the TextBlock (which is wrapped inside a ScrollViewer)
<ScrollViewer Width="300" Height="200" VerticalScrollBarVisibility="Auto" VerticalScrollMode="Enabled" >
<TextBlock TextWrapping="Wrap" Style="{StaticResource BasicTextStyle}">
<TextBlock.Transitions>
<TransitionCollection>
<ContentThemeTransition HorizontalOffset="-500" />
</TransitionCollection>
</TextBlock.Transitions>
"Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?"
</TextBlock>
</ScrollViewer>
Am I doing something wrong, or is this a WinRT bug?

I think I responded to your Connect bug, but can you use EntranceThemeTransition instead here?

Related

Vue anchor hash links. Is it possible to create a mix of createWebHashHistory & createWebHistory router-links

I using vueJS3 and have the following menu list:
const menu = [
{ref: "../#home", name: "Home"},
{ref: "../areas", name: "Areas"},
{ref: "../#contact", name: "Contact"},
];
<nav class="overlay-menu">
<ul>
<li v-for="(link, index) in menu" :key="index">
<router-link :to="link.ref" #click="clicked">{{ link.name }}</router-link>
</li>
</ul>
</nav>
Unfortunately, the router-links with hash anchor links do not work. Alternatively I had used <a :href="link.ref" ...</a>. But I actually want to avoid that and want to move in the vue router link context. Is there a solution for this?
Status 2022-11
To bring it to a close at this stage, here is my workaround. As #kissu suspected in his comment: totally clear, it's just not working for some reason. Not sure what changed with the latest vue-router/vue3 here. Investigating myself because it's a bummer. I'll maybe create a github issue at some point, it could be a Vue router bug. For this reason I had to write a solution quickly. It is only a workaround but clear and I would also say not dirty. But you should be able to use it via the vue-router in the future.
In my case it was only two hash links that were both on the home. For this reason I put a method in my script setup that does the logic of scrolling to a specific ID selector. Then I put a watcher on the route.hash that checks if the hash in the url changes.
<script setup>
import { watch, onMounted} from "vue";
import { useRoute } from "vue-router";
const route = useRoute();
onMounted(() => {
scrollIfHashRoute();
});
const scrollIfHashRoute = function() {
const element = document.querySelector(route.hash);
const postionHeight = element.getBoundingClientRect();
window.scrollTo(0, postionHeight.top + window.scrollY);
}
watch (
() => route.hash,
(current, prev) => {
scrollIfHashRoute();
}
);
Update: found a way for that one.
You need to configure scrollBehavior for it to work. The migration guide from Vue2 mentions it.
import { createRouter, createWebHistory } from "vue-router";
import Index from "../views/Index.vue";
import About from "../views/About.vue";
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
// important part here 👇🏻
scrollBehavior(to, from, savedPosition) {
if (to.hash) {
return {
el: to.hash,
};
}
},
// important part above 👆🏻
routes: [...],
});
export default router;
Posva indirectly helped me solving that one via Discord.
PS: this is more of a repro than an actual answer (easier to share on Discord).
It works perfectly in a Nuxt2 app (with vue-router v3.5.3).
With a default Vue3/Nuxt3 config (with v4.1.6) meanwhile, it does not work aka
import { createRouter, createWebHistory } from "vue-router";
import Index from "../views/Index.vue";
import About from "../views/About.vue";
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: "/",
name: "index",
component: Index,
},
{
path: "/about",
name: "about",
component: About,
},
],
});
export default router;
I've read this migration part but I'm still not sure where the issue is coming from or if anything should change at all.
Below is an example of snippet that does not work.
HomeView.vue
<template>
<main>
<router-link :to="{ name: 'about', hash: '#scroll' }">
Let's scroll to about + #scroll !!
</router-link>
</main>
</template>
AboutView.vue
<template>
<div>
<br />
<br />
<router-link :to="{ hash: '#scroll' }"> Let's scroll !! </router-link>
a link
<p class="big-block">
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
</p>
<br />
<br />
<p id="scroll">supposed to scroll to this point</p>
<br />
<br />
<p class="big-block">
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
Eos consequatur et necessitatibus sapiente perspiciatis similique. Dicta
illum recusandae voluptas. Distinctio odit velit. Adipisci cupiditate
pariatur odio est sunt illum eaque voluptas fuga. Tempora itaque omnis
eveniet ea unde non ea minima. Et cum voluptates non in molestiae officia
sint voluptas. Aut laborum non quis eaque. Ipsam iste consectetur alias
vel quos consectetur eaque eos iste. Id mollitia ratione libero sit
cupiditate. Et totam corporis dolor officiis unde reiciendis. Et iure
voluptas ipsa voluptatibus. Saepe incidunt rem molestias voluptatem
voluptas delectus et porro dolores. Quaerat vero neque maiores blanditiis.
</p>
</div>
</template>
<style>
#media (min-width: 1024px) {
.about {
min-height: 100vh;
display: flex;
align-items: center;
}
}
</style>

Sticky Expanding Footer using CSS only (position:sticky)

Is it possible to achieve the below layout (sticky footer that expands and scrolls when the user finishes scrolling the content above the footer) using CSS only?
(Note: my example layout here has a fixed height footer to demonstrate the desired outcome - the point of this questions is to ask whether this can be done with an arbitrary-height footer)
body {
margin: 0;
}
header {
position: fixed;
left: 0;
right: 0;
top: 0;
background: #cfc;
opacity: 0.5;
}
article {
min-height: 100vh;
}
footer {
position: sticky;
background: #fcf;
bottom: calc(0px - 200px + 30px);
overflow: hidden;
height: 200px; /* fixed height for demo purposes, needs to work without this */
}
footer h3 {
height: 30px;
margin: 0;
background: #ffc;
}
<header>
<h1>Header stuff</h1>
</header>
<article>
<p>Illo incidunt minus mollitia quod. Eaque earum molestiae necessitatibus, nemo numquam perferendis perspiciatis possimus ut vero! Amet eos excepturi inventore optio porro temporibus vel, velit. Autem dolorum eligendi porro sed.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci amet debitis dicta eum, expedita fuga itaque laborum, nesciunt officiis pariatur sapiente, ullam ut. Enim eveniet ipsam labore quod suscipit. Ad cum dolorum ea eaque eos iusto magni, mollitia nisi, nobis nostrum possimus praesentium provident quasi saepe vel, veniam voluptatum? Culpa dignissimos doloremque illo perspiciatis sit! Ad, cumque dolor dolore dolores eveniet exercitationem expedita facilis ipsam itaque iure iusto laboriosam laborum magnam minus neque nostrum perspiciatis quasi quibusdam, quidem repellendus soluta temporibus totam unde? A assumenda aut commodi culpa explicabo facere ipsa nesciunt officia placeat quo repudiandae, vel? Dolorem, esse, voluptates.</p>
<p>Debitis ea expedita quibusdam temporibus vel! Ab adipisci deleniti doloremque est et fugit impedit obcaecati repellat sed veniam. A accusamus at commodi dolorem exercitationem hic id inventore iure labore necessitatibus officia perferendis, possimus saepe sint, sit tempore ullam vel veritatis, vero voluptatum! Consequuntur delectus excepturi iusto nemo porro! Accusamus autem blanditiis cum dolorem est ipsam magnam nesciunt, obcaecati provident quas qui repellendus sunt totam vitae voluptatum. Accusamus corporis dolores esse explicabo natus perspiciatis placeat quam! Animi aut consequatur dignissimos dolores doloribus dolorum, ducimus eum fuga harum in itaque laboriosam necessitatibus nobis non placeat possimus provident, quasi quia, quis vero voluptas.</p>
<p>Amet architecto consequatur facere in inventore itaque, molestias necessitatibus nisi non nostrum omnis, quas quisquam, quos soluta vero! Accusamus aliquam animi, asperiores assumenda commodi culpa delectus dolore doloremque est eum illo ipsam iusto magni maxime nesciunt non obcaecati omnis perspiciatis, provident quasi quo saepe sit suscipit ut voluptatem! Accusamus eum molestiae quia quidem repellendus? Accusantium ad assumenda at autem blanditiis delectus distinctio ea fugit iure laboriosam, magnam nesciunt nobis numquam praesentium reiciendis sint voluptatem? Alias aliquid, aut distinctio illo ipsam itaque magnam nihil odio perferendis, provident qui quidem, quo repellendus tempore vitae. Aperiam dolorem ipsum molestiae nostrum ratione, suscipit vel.</p>
<p>Culpa, esse porro! Aut libero quae rerum ut vitae! Ab assumenda beatae consequuntur, doloremque dolores impedit nihil ratione sunt totam? Aliquam explicabo ipsa mollitia nam officiis pariatur quia. Aliquam beatae deleniti dolor dolorem earum est, expedita fugit illo, ipsa iusto magnam necessitatibus numquam optio perspiciatis possimus quo quod repellat repudiandae sunt, tenetur. Ad amet corporis cupiditate eius inventore numquam odio quidem ratione sed ullam. Accusantium ad, aspernatur at aut autem cumque dignissimos doloremque dolores doloribus eaque eius, itaque laboriosam libero, nihil obcaecati officia perspiciatis praesentium quia quibusdam sit suscipit tempora tempore vel veritatis voluptate. Eligendi fugiat maiores placeat sapiente sed?</p>
<p>Atque eaque nulla quo temporibus voluptas. A ad adipisci aperiam autem deserunt dolorem dolorum ducimus enim eum excepturi fuga fugiat, fugit hic ipsum labore laudantium maiores, molestias nam nesciunt odio quae quam quasi repudiandae sequi vero. A at blanditiis cum dolore dolorum eligendi esse facere facilis, harum incidunt ipsam maiores maxime minima minus neque nulla numquam obcaecati quas ratione repellendus similique, veritatis voluptate. Ab, accusamus asperiores harum mollitia possimus quae ullam! Ad alias aliquam, architecto at deleniti dicta doloremque dolorum esse et explicabo hic iure laboriosam maiores maxime neque nisi obcaecati officiis possimus recusandae saepe sapiente temporibus voluptatem. Ab, mollitia?</p>
<p>Corporis labore maxime odio quisquam sed! Aliquid deleniti dolor doloribus eligendi est excepturi exercitationem expedita incidunt inventore labore laudantium mollitia nam officiis, praesentium qui quis recusandae sunt suscipit voluptas voluptatibus? Mollitia quas quibusdam recusandae veritatis voluptas. Alias aut, consectetur mollitia perferendis quasi quos recusandae sequi. Accusantium atque facilis itaque mollitia quisquam sunt, ut. Accusantium, assumenda consectetur delectus doloremque, dolorum error esse expedita id maxime non quam quidem similique unde, ut vero voluptas voluptatem. Accusamus alias consectetur consequatur dolores magni natus necessitatibus quas quia voluptatem. Deleniti, facere, veniam. A ad corporis dicta dolores neque nisi perspiciatis possimus quam sequi temporibus. Nulla.</p>
<p>Accusamus aperiam architecto asperiores cum et ex expedita facilis impedit iure laborum molestiae mollitia nam, quis quisquam reprehenderit totam voluptas. Accusamus corporis doloremque excepturi modi neque officia, tenetur. Aut cum, distinctio eligendi harum incidunt laboriosam molestias nulla sunt! Ab architecto, aspernatur debitis deleniti dolor doloremque ducimus eaque error eveniet fugiat in labore minus molestiae nemo nisi nostrum nulla, obcaecati placeat quas quia quo reprehenderit, repudiandae sed sint suscipit tempore veniam voluptate. Architecto assumenda autem deserunt ea esse est ex excepturi expedita fuga fugiat harum hic impedit ipsam modi necessitatibus nesciunt nihil obcaecati officiis perspiciatis quam reiciendis sit temporibus, ut voluptatibus!</p>
<p>Adipisci aliquam cumque distinctio impedit laboriosam laborum maiores nemo nesciunt nostrum. Dolor dolore eveniet, illum maxime odit quaerat quasi quibusdam quisquam recusandae. Hic nihil possimus quod ut. Animi autem cum delectus deleniti dolore iste minus modi officiis quas reprehenderit, sed sequi vel vitae. Aliquam at delectus deserunt dignissimos dolore eaque enim error explicabo fugiat hic id illo laudantium maxime mollitia natus obcaecati odit pariatur quod quos, repellat repellendus reprehenderit sit suscipit tempore temporibus veniam voluptates? Asperiores cumque doloribus ea eum laborum numquam, odio quo recusandae sapiente sint suscipit temporibus ut voluptas? Blanditiis eum mollitia quis quod quos sit temporibus veritatis.</p>
<p>Accusantium ad autem beatae culpa debitis deleniti doloremque est ex fugit, harum in labore maxime, minima nisi odit officiis provident soluta suscipit veritatis voluptatibus! Ab at aut beatae doloremque numquam! Ab, architecto deleniti dicta ea earum est eveniet exercitationem illum ipsam, ipsum itaque labore libero minima modi molestias natus officiis pariatur perferendis placeat quaerat quas rem rerum sit soluta sunt ullam vitae voluptatum? Aliquam aperiam aspernatur corporis cum distinctio dolor ducimus ea esse est illum ipsa ipsum, iusto libero magnam maiores maxime nam nihil non nostrum nulla odio officiis optio perferendis praesentium provident quisquam ratione repudiandae sunt suscipit ut voluptates.</p>
<p>Ducimus minima molestias placeat quaerat vel. Ab beatae, doloremque ea eos ex iure iusto labore minus molestiae, nobis numquam perspiciatis praesentium quae quaerat quam sed unde voluptatum. Alias architecto atque aut dolorum, hic tenetur? Ab accusantium aliquid aut debitis deserunt dolore, dolorem earum est eum fugiat illum inventore itaque modi molestiae natus nobis obcaecati quasi quidem quo quos reiciendis, rem reprehenderit repudiandae similique sint, sunt unde ut veritatis vitae voluptatem? Assumenda culpa deleniti facilis maiores nam numquam officia quidem rem reprehenderit, sapiente ullam vel voluptas. Ab accusamus delectus eveniet facilis, fugiat fugit molestiae quisquam ratione veniam veritatis. Cum, quo voluptates.</p>
</article>
<footer>
<h3>Footer Stuff</h3>
<p>Arbitrary height footer content.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Neque obcaecati quae sequi soluta temporibus? Ab, ad eveniet ex itaque quae quo quod repellat similique voluptatum. Culpa cupiditate porro recusandae vel.</p>
<p>Animi architecto corporis culpa dignissimos, doloribus ducimus eaque earum exercitationem expedita explicabo facilis id impedit molestiae nobis nulla officiis porro possimus quam, quia quidem quo suscipit tempore totam vitae voluptatem!</p>
<p>Beatae commodi deserunt distinctio est eum, ex expedita in incidunt maiores officiis optio quae qui, quidem quo ratione sapiente suscipit? Cumque ea enim explicabo maxime molestias mollitia quod suscipit vero.</p>
<p>Illo incidunt minus mollitia quod. Eaque earum molestiae necessitatibus, nemo numquam perferendis perspiciatis possimus ut vero! Amet eos excepturi inventore optio porro temporibus vel, velit. Autem dolorum eligendi porro sed.</p>
</footer>

Tailwind CSS: Using a fixed header & footer, text content is being cropped on mobile devices

I have made a sandbox example of what I need: https://codesandbox.io/s/vue-tailwind-css-template-forked-7uhkgl?file=/src/App.vue
<div class="flex h-screen flex-col">
<header class="sticky top-0 h-12 w-full bg-white">header</header>
<main class="h-screen overflow-scroll bg-blue-200 p-4">
<div class="h-full rounded-xl bg-green-200 p-4">
<p class="h-full overflow-scroll rounded-xl p-4">Lorem, ipsum dolor sit amet consectetur adipisicing elit. Ipsa dicta quasi, fugit aperiam quis laudantium dolorem libero mollitia provident maxime odio. Sint dolore libero magnam atque dolorem ex pariatur voluptatum. Alias eos amet quis, nostrum explicabo excepturi, odio perspiciatis omnis sunt mollitia reiciendis ut ipsa doloremque! Ut, rem fugiat impedit, iusto, nam repellat labore aspernatur vero ad ducimus numquam veritatis. Tenetur iure voluptatem sint quo ut qui rerum pariatur officiis exercitationem? Harum exercitationem suscipit hic soluta deleniti doloremque ullam temporibus quis, magnam rerum velit laudantium illum quidem animi blanditiis ducimus. Aliquam excepturi dolores temporibus ducimus voluptatem ullam maiores nihil adipisci quo debitis! Quo, atque voluptatibus laboriosam minus nulla hic rerum, eaque dicta modi quidem beatae officia, temporibus eligendi fugiat animi. Nihil quos, sed fugiat sunt vel suscipit similique libero aut deleniti at soluta rem iure dolores sapiente tempore iste accusantium, impedit quisquam molestiae eos asperiores cumque tenetur eveniet ullam? Aut. Distinctio alias nemo fugiat explicabo eaque tenetur unde maxime laborum reiciendis voluptas maiores incidunt dolorum expedita, dolore hic consequuntur provident laudantium porro? Quas unde dolorem, quidem numquam quis vero quam. Ex quibusdam labore voluptatum rerum obcaecati! Sed unde incidunt, laudantium animi pariatur accusamus laboriosam dolores vero aliquam alias quis eos sapiente distinctio deleniti quidem modi ipsam? Illo voluptatibus fugit ducimus! Eius adipisci laborum eum tenetur. Explicabo animi temporibus neque doloremque laboriosam assumenda maxime, veritatis autem? Odio consequuntur quasi dignissimos accusamus, fuga temporibus labore architecto esse sed fugiat asperiores sapiente. Vel! Dicta veniam tempore consequuntur, aliquam ratione, quidem eaque id aspernatur quis voluptatum voluptas a in quibusdam voluptate quaerat sequi saepe animi accusantium nihil optio, porro esse. Officia eius quaerat officiis. Architecto aliquid, et vero tempore consequuntur deleniti reprehenderit expedita voluptatum totam ipsam similique praesentium numquam? Molestiae itaque, nobis harum, dolores quibusdam mollitia ex labore in magni sit, iure quo necessitatibus. Architecto fugiat, eius labore natus commodi nostrum ipsam, sequi nobis possimus ducimus ipsa? Expedita vero doloremque tenetur dolore ipsum at ea eligendi quos incidunt ut quibusdam eveniet nostrum, fuga optio? Libero cum a repellendus tempora facere aliquam animi ipsam perferendis nostrum! Quidem ducimus eaque fugit culpa accusantium, temporibus harum soluta hic quae maxime tempore eos, sed magni veniam atque est! Error obcaecati quasi sequi explicabo quas magni fugit possimus, temporibus animi nemo minima. Accusamus illum enim, fuga odit reprehenderit dolore, inventore nisi amet aperiam molestiae eaque maxime voluptates asperiores voluptas. Laboriosam sint ducimus tempora reprehenderit neque corrupti consectetur et possimus esse quas dicta maxime quis autem cupiditate, quaerat doloribus doloremque aliquid quae alias iusto, quisquam natus illo eum mollitia. Nihil! Aspernatur natus velit delectus eaque dolore cupiditate ipsa doloribus atque voluptatem iure sequi inventore odio vitae at, dolorem dolor quo quibusdam quod voluptatibus quas molestiae tenetur? Illum minus corporis incidunt. Fuga, nam unde. Magni nobis similique minus, quae itaque reprehenderit nulla ex suscipit voluptate quos distinctio, est placeat accusamus blanditiis cumque labore, soluta impedit. In aliquam consequatur exercitationem provident rerum? Voluptatem repudiandae magnam sed nulla cupiditate corporis debitis at fuga similique inventore impedit quae alias, dolores error dicta, iure ipsam velit. Tempora eaque deleniti at nam ad obcaecati fugit ullam? Minus aut soluta neque quod sunt suscipit tempora! Nulla quisquam dolorem assumenda dolor optio ratione aperiam sunt iste blanditiis. Ex minus, enim nulla voluptatum veniam animi amet qui deserunt sequi. Praesentium in ratione qui animi deleniti, id similique fugit quas veniam ipsam iusto nemo! Corporis consequuntur, autem nisi quasi facilis saepe reiciendis nesciunt qui facere laudantium, in, eos ad voluptatum! Aliquid laudantium, ab debitis atque praesentium quia quaerat alias, quo repellat et obcaecati dolore assumenda aperiam? Facere tempora autem deserunt nam, at nihil rem, eius quis adipisci eligendi, esse consectetur!</p>
</div>
</main>
<footer class="sticky bottom-0 h-12 w-full bg-white">footer</footer>
</div>
Everything is fine until I try this on real mobile device, then the main content is a bit cropped and it is not what I want.
This is what I got:
My project is in Vue3.
If you are using flex-col, you don't need to use sticky or absolute positioning for your header and footer. They just need to be stacked inside the flex and your content section set to flex-1 to take up all of the available remaining vertical space. adding overflow-hidden on <main> and moving the scrollbar into the green container should fix the scrollbar issue. For example:
<template>
<div class="flex h-screen flex-col">
<header class="h-12 w-full bg-white">header</header>
<main class="flex-1 bg-blue-200 p-4 overflow-hidden">
<div class="h-full rounded-xl bg-green-200 p-4 overflow-y-scroll ">
<p class="h-full rounded-xl p-4">
...
</p>
</div>
</main>
<footer class="h-12 w-full bg-white">footer</footer>
</div>
</template>
This removes the h-space from your content wrapper which will hopefully resolve the issue you are seeing on mobile devices.
Also, replacing overflow-scroll with overflow-y-scroll will get rid of the internal horizontal scrollbar.

Unwanted space in table cell when another cell has a tag within it

I'm having trouble understanding why the two chunks of HTML below render differently. The yellow and pink table is missing a BR tag, and flows efficiently, the green and blue table has the <BR> tag in the middle of the text in the blue cell, and has unwanted space in the green cell. I've tried rendering as flex boxes and tables, and they render the same way. I've tried different browsers, and they render the same way.
What rule is being followed in the green and blue layout that causes the whitespace in the green cell?
How can I get rendering like the yellow-and-pink case and use <BR> tags? I'm actually after <P> tags, but let's just talk about <BR> tags, which I figure are the most simple case.
<html><body>
<div style="display: flex; flex-flow: row;">
<div style="background-color: green;">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</div>
<div style="background-color: blue;">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
<br/>
Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?
</div>
</div>
<br/>
<table>
<tr>
<td style="background-color: yellow;">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</td>
<td style="background-color: pink;">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
<xbr/>
Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?
</td>
</table>
<br/>
</body></html>
Screenshot:
If a height is assigned to a div, the whitespace is not removed (see the darker green below), and if a <br> tag is allowed into a table which has a height on the cell, the whitespace is split between the top and bottom of the cell (see the lighter green below) - but the height attribute doesn't affect the rendering anyway:
This behaviour is exhibited in FireFox 80.0 and Chrome Version 85.0.4183.83
Here's what's going on:
Inside of the div with display: flex; flex-flow: row you have two children, the green and the blue divs.
The browser calculates their individual widths (it's the width because flex-flow: row) as follows:
The calculation of the green div's width is straight forward. It's the width of the whole text on one line.
=> greenWidth
The calculation of the blue div is a little bit more involved because of the <br>. This causes the text to be split in two. The browser then calculates the widths of these two bits of text that they would take on one line each. Then it takes the wider of these.
=> blueWidth
Both, the green and the blue box have their default value for flex-basis which is auto. For the green box, the browser takes greenWidth and for the blue box it takes blueWidth as the result of auto.
I still haven't come up with an actual solution but maybe, based on the above, you might be able to figure something out.
In the flex-box the items are stretched to the height of the container (if height of items is not defined). However, You can change this behaviour by gibing the green div a height.
Suppose the height is 100px;
<html><body>
<div style="display: flex; flex-flow: row;">
<div style="background-color: green; height: 100px;">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</div>
<div style="background-color: blue;">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque
laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi
architecto beatae vitae dicta sunt explicabo.
<br/>
Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci
velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam
aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem
ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?
</div>
</div>
<br/>
<table>
<tr>
<td style="background-color: yellow;">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor
incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud
exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</td>
<td style="background-color: pink;">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque
laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi
architecto beatae vitae dicta sunt explicabo.
<xbr/>
Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci
velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam
aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem
ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?
</td>
</tr>
</table>
<br/>
</body></html>
Christian pointed in the right direction. Understanding that the problem is down to sizing being affected by tags, I allowed the browser to size the un-tagged content, but hid its rendering.
The "solution" is to have two text bodies, one rendering with tags and the other without. The text without tags is color:transparent; and positioned with normal text flow. The text with tags is rendered on top of the document text flow in the location of the transparent text by using a z-index higher than the normal text. There is a chance that the text with tags will overflow the table, so layout your page with this possibility under consideration (or pad the text without tags a little):
<html><body>
<div style="display: flex; flex-flow: row;">
<div style="background-color: #FFA;">
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
</div>
<div style="position: relative; background-color: #FDD;">
<div style="position: absolute; z-index:2;">
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
<br/>
Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?
</div>
<div style="color:transparent;">Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo.
<xbr/>
Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur?
</div>
</div>
</div>
</body></html>

Create a wider UWP ContentDialog

I'm creating a UWP app that will only run on widescreen kiosk systems only (so I don't need to worry about how the layout might scale down to a phone, etc).
I'm trying to use ContentDialog to create popup dialogs on top of the main one. The problem I'm encountering is that the ContentDialog appears to have a fixed maximum width that of 550 pixels on a 1920x1080 which makes relatively poor use of the screen in the best of cases and will cut off content (or force the unnecessary use of a ScrollViewer container) in others.
I've tried setting eg Width="600" on both the ContentDialog and whatever container is being used on for the content (StackPanel or Grid). When I do that to the ContentDialog itself the width remains unaffected but larger values displace it off the center of the screen. On the content it causes the content to attempt to extend itself beyond the right edge of the ContentDialog and get cut off.
Changing MinWidth and MaxWidth were equally ineffective.
How can I either force the ContentDialog to take up a wider portion of the screen, or replace it with a more flexible alternative?
<ContentDialog
x:Name="passCodeContentDialog">
<ContentDialog.TitleTemplate>
<DataTemplate>
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130"/>
<ColumnDefinition Width="230"/>
<ColumnDefinition Width="130"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" x:Uid="PgVgWizardInfoTitle" Text="Title" HorizontalAlignment="Center"/>
<Button Grid.Column="2" Content="Close" HorizontalAlignment="Right"/>
</Grid>
</DataTemplate>
</ContentDialog.TitleTemplate>
<StackPanel >
<TextBlock Text="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent at mi varius, viverra enim vehicula, pharetra metus. Phasellus ipsum lacus, porttitor consectetur lectus id, pharetra luctus leo. Fusce vitae elit et augue varius porttitor vitae eget lectus. Duis mauris tortor, faucibus eget ultricies a, porta ac arcu. Quisque in arcu cursus, sagittis lorem ut, posuere augue. Donec eu pharetra sapien. Cras eu pharetra lectus, eget condimentum purus." TextWrapping="Wrap" Margin="0,0,0,10"/>
<TextBlock Text="Phasellus tincidunt ultricies lobortis. Sed laoreet ullamcorper metus, quis efficitur ante venenatis quis. Ut gravida id risus ut pharetra. Integer cursus eros ex, sit amet luctus lacus commodo at. Donec nec tellus ornare, lacinia ex non, maximus tellus. Vestibulum dui dolor, malesuada in ex quis, faucibus luctus justo. Mauris ac augue non velit tempor porttitor in sollicitudin purus. Integer accumsan condimentum ipsum, sit amet cursus ipsum fermentum nec. Praesent ac viverra sapien. Maecenas accumsan vel libero et fringilla. Pellentesque porta, dui vitae efficitur imperdiet, lectus nunc ultricies mi, non consectetur mauris leo sit amet orci. Ut dictum pellentesque lacus vel vulputate. Etiam urna massa, scelerisque ac odio eget, sodales euismod ipsum. Sed porta diam nulla, in facilisis nisl aliquet eu. Proin commodo interdum pellentesque." TextWrapping="Wrap" Margin="0,0,0,10"/>
<TextBlock Text="Phasellus at luctus justo. Donec quis consectetur nisi. Ut vitae eros consectetur, pharetra risus condimentum, aliquam quam. Maecenas fermentum leo quis odio efficitur auctor. Ut ex purus, porttitor ac tortor in, dignissim tempor magna. Quisque lectus tortor, viverra id tellus eget, porta varius orci. Nulla facilisi. Fusce pulvinar massa vitae justo sollicitudin lobortis. Vestibulum volutpat bibendum eros et sollicitudin. Nunc non condimentum turpis. Donec nec ipsum convallis, dignissim eros in, dictum magna. Quisque pulvinar tellus justo, non condimentum orci porta a. Duis quis dolor molestie, varius orci quis, convallis nisl. Phasellus nec nisl id tortor gravida fermentum eget sit amet risus." TextWrapping="Wrap" Margin="0,0,0,10"/>
<TextBlock Text="Cras venenatis faucibus fringilla. Maecenas quis felis condimentum, ultricies diam sed, tincidunt elit. Suspendisse ultricies sapien vitae dolor dictum ullamcorper. Aliquam tristique justo maximus semper pellentesque. Maecenas eget dapibus arcu. Morbi imperdiet nisi a varius scelerisque. Proin convallis enim at fermentum ultrices. Sed nec molestie arcu, non egestas nibh. In a sollicitudin diam. Fusce ut facilisis nisl. Maecenas ut metus quis quam aliquam dignissim. Ut at pretium justo. Ut molestie mi at ex porttitor gravida. Nam nec ipsum turpis. Nam malesuada neque vitae nibh scelerisque, at iaculis felis pretium." TextWrapping="Wrap" Margin="0,0,0,10"/>
<TextBlock Text="Curabitur vel commodo risus. Praesent vitae laoreet erat. In et euismod metus. Vivamus ipsum tortor, tincidunt eu viverra sed, tincidunt et velit. Vestibulum efficitur, neque eget ultricies vulputate, nisi nulla mattis sem, sit amet suscipit elit ante non mauris. Cras maximus mauris vel nulla hendrerit, et vulputate metus tristique. Morbi leo diam, eleifend et risus et, mollis sodales velit. Phasellus pretium dui sit amet nibh maximus, et viverra erat iaculis. Ut convallis sit amet enim a porta. Vivamus hendrerit lorem nec magna porta interdum ac at lorem. Sed lorem diam, vulputate ut dui a, ultrices bibendum eros. Phasellus dignissim ex quis augue semper sagittis. Nullam eu lorem rhoncus, commodo massa eget, gravida metus. Nam ultricies purus leo, malesuada fermentum nulla malesuada dapibus. Etiam feugiat posuere quam, ultricies ultrices nunc euismod at. " TextWrapping="Wrap" Margin="0,0,0,10"/>
</StackPanel>
</ContentDialog>
How can I either force the ContentDialog to take up a wider portion of the screen, or replace it with a more flexible alternative?
The default max width of ContentDialog is 548 pixels. If you want to use more wider ContentDialog, you could use ContentDialogMaxWidth XAML theme resources in your in your
Application Resources like the following.
<Application
x:Class="FileAccessTest.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:FileAccessTest"
RequestedTheme="Light">
<Application.Resources>
<ResourceDictionary>
<x:Double x:Key="ContentDialogMaxWidth">1000</x:Double>
</ResourceDictionary>
</Application.Resources>
</Application>
For more you could refer ContentDialog styles and templates.