Movatterモバイル変換


[0]ホーム

URL:


Menu
×
See More 
Sign In
+1 Get Certified Upgrade Teachers Spaces Get Certified Upgrade Teachers Spaces
   ❮   
     ❯   

Vue Tutorial

Vue HOMEVue IntroVue DirectivesVue v-bindVue v-ifVue v-showVue v-forVue EventsVue v-onVue MethodsVue Event ModifiersVue FormsVue v-modelVue CSS BindingVue Computed PropertiesVue WatchersVue Templates

Scaling Up

Vue Why, How and SetupVue First SFC PageVue ComponentsVue PropsVue v-for ComponentsVue $emit()Vue Fallthrough AttributesVue Scoped StylingVue Local ComponentsVue SlotsVue v-slotVue Scoped SlotsVue Dynamic ComponentsVue TeleportVue HTTP RequestVue Template RefsVue Lifecycle HooksVue Provide/InjectVue RoutingVue Form InputsVue AnimationsVue Animations with v-forVue BuildVue Composition API

Vue Reference

Vue Built-in AttributesVue Built-in ComponentsVue Built-in ElementsVue Component InstanceVue DirectivesVue Instance OptionsVue Lifecycle Hooks

Vue Examples

Vue ExamplesVue ExercisesVue QuizVue SyllabusVue Study PlanVue ServerVue Certificate

Vue v-html Directive


Example

Using thev-html directive to output a list containing<ol> and<li> tags.

<div id="app">
  <div>{{ htmlContent }}</div>
  <div v-html="htmlContent"></div>
</div>
Try it Yourself »

See more examples below.


Definition and Usage

Thev-html directive is used to insert HTML tags and text into an element.

If you try to output HTML tags using text interpolation (using curly braces{{ }}), the result will be just a text string. See the example above.

Scoped styling defined in Single-File Components (SFCs) using<style scoped> will not affect HTML from thev-html directive. See the first example below.

To achieve scoped styling for HTML included withv-html in SFCs we can use CSS modules with<style module>. See the second example below.

Note:Pages where users can somehow dictate the content that is included withv-html, are at risk of Cross-site scripting (XSS) attacks.


More Examples

Example 1

Using scoped styling, the styling does not work for HTML included withv-html.

This problem is fixed in the next example.

<template>  <h1>Example</h1>  <p>When using scoped styling, styling for HTML included with the 'v-html' directive does not work.</p>  <p><a href="showvue.php?filename=demo_ref_v-html2_2">See the next example</a> for how we can fix this by using CSS Modules.</p>  <div v-html="htmlContent" id="htmlContainer"></div></template><script>export default {  data() {    return {      htmlContent: "<p>Hello from v-html</p>"    }  }};</script><style scoped>  #htmlContainer {    border: dotted black 1px;    width: 200px;    padding: 10px;  }  #htmlContainer > p {    background-color: coral;    padding: 5px;    font-weight: bolder;    width: 150px;  }</style>
Run Example »

Example 2

Using CSS Modules with<style module>, instead of<style scoped>, the styling is scoped and the styling works for HTML included withv-html.

This problem in the previous example is now fixed.

<template>  <h1>Example</h1>  <p>Scoped styling for HTML included with the 'v-html' directive now works by using CSS Modules with 'style module', instead of 'style scoped'.</p>  <div v-html="htmlContent" :id="$style.htmlContainer"></div></template><script>export default {  data() {    return {      htmlContent: "<p>Hello from v-html</p>"    }  }};</script><style module>  #htmlContainer {    border: dotted black 1px;    width: 200px;    padding: 10px;  }  #htmlContainer > p {    background-color: coral;    padding: 5px;    font-weight: bolder;    width: 150px;  }</style>
Run Example »

Related Pages

Vue Tutorial:Text Interpolation



×

Contact Sales

If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail:
sales@w3schools.com

Report Error

If you want to report an error, or if you want to make a suggestion, send us an e-mail:
help@w3schools.com

W3Schools is optimized for learning and training. Examples might be simplified to improve reading and learning.
Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness
of all content. While using W3Schools, you agree to have read and accepted ourterms of use,cookies andprivacy policy.

Copyright 1999-2025 by Refsnes Data. All Rights Reserved.W3Schools is Powered by W3.CSS.


[8]ページ先頭

©2009-2025 Movatter.jp